0

ここに小さなサンプルがあります:

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

したがって、基本的にmyStackオブジェクトには 4 つの文字列があります。myStackRANDOM インデックスを使用して、さらに 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 に答える