以下是小样本:
Stack<String> myStack = new Stack<String>();
myStack.add("Cat");
myStack.add("Dog");
myStack.add("Bird");
myStack.add("Elephant");
所以基本上myStack
对象有4个字符串。我想使用RANDOM索引将另外3个字符串插入myStack
。通常当我使用myStack.add();
放置一个新的String时,新的输入将被分配在顶部(索引0),在这种情况下我不希望它。我希望它随机放入随机索引中。解决方案是什么?
答案 0 :(得分: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);
}
}