3

私はJavaを使用しています。JavaでArrayListを使用する場合。インデックス番号にランダムにアクセスすると。

これは可能ですか?

これが不可能な場合。どうすればいいですか?

例えば

ArrayList<String> al = new ArrayList<String>();
al.add(100,"stackoverflow");

これは可能ですか?

4

4 に答える 4

6

必要と思われるのは arrayList ではなく、整数と文字列の間のマップです。

HashMap<Integer,String> mymap = new HashMap<Integer,String>();

だからあなたは書くことができます

mymap.put(100,"stackoverflow");

String myString = mymap.get(100);

配列リストを使用できない理由に追加します。

ArrayList を最初に初期化するとき、サイズはゼロです。サイズより大きいインデックスに追加しようとすると、配列と同様に IndexOutOfBounds 例外がスローされます。ArrayList の利点は、サイズがいっぱいになった場合により多くのメモリを動的に割り当てることです。

その上、エラーを回避するためにサイズを管理する努力をしても、配列は「疎配列」には効率的ではありません。

于 2012-07-11T06:50:08.293 に答える
1
int index = (int)(Math.random() * myArray.size());
Object o = myArray.get(index);
于 2012-07-11T06:48:29.943 に答える
0

Is this posible?

はい、できます。以下のように

   List<String> list=new ArrayList<String>();

    for(int i=0;i <10;i++)
    {
        list.add(i,new Integer(i).toString());
    }

    System.out.println(list.get(5));

乱数を使用する場合は、数値を生成する必要があり、そのインデックスに追加できます。

于 2012-07-11T06:56:45.573 に答える
0

ええ...できます..ArrayListは、削除、追加、indexOfなど、多くの柔軟性を提供します..

例えば:

ArrayList<String> arr = new ArrayList<String>();

arr.add("vivek");
arr.add("vicky");

arr.get(1);

編集部分:

サイズがそれより小さい場合に 100 番目の要素を直接追加しようとすると、次のエラーが発生します。

java.lang.IndexOutOfBoundsException:
于 2012-07-11T06:49:00.380 に答える