0

这是小样本:

Stack<String> myStack = new Stack<String>();
myStack.add("Cat");
myStack.add("Dog");
myStack.add("Bird");
myStack.add("Elephant");

所以基本上myStack对象有4个字符串。我想myStack用 RANDOM 索引再插入 3 个字符串。通常,当我使用myStack.add();新输入放置一个新字符串时,将在顶部(索引 0)分配我不希望它在这种情况下。我希望它被随机放入随机索引中。解决方案是什么?

4

1 回答 1

1

因为 Stack 是 Vector 的子类,你可以这样做

<E> void addRandom(Stack<E> stack, E e) {
    stack.add((int) (Math.random() * (stack.size() + 1)), e);
}

或制作一个自定义类

class RandomStack<E> extends Stack<E> {

    void addRandom(E e) {
        add((int) (Math.random() * (size() + 1)), e);
    }
}
于 2013-03-24T02:38:38.620 回答