0

私はJavaが初めてです...

2 つの ArrayList があります。

subList1
subList2

それらは別のメソッドによってすでに入力されており、実行すると、リストには次の文字列が含まれます。

subList1: [amulet, map, stone, sword]
subList2: [bottle, shield, wand]

私ができる必要があるのは、アルファベット順で subList2 の要素よりも小さいすべての要素が subList1 に含まれるように、両方のリストを並べ替えることです。また、両方のリストのサイズは同じでなければなりません。

期待される出力:

subList1: [amulet, bottle, map, shield]
subList2: [stone, sword, wand]

これまでの私のコード:

Collections.sort(subList1);
Collections.sort(subList2);

    //[amulet, map, stone, sword]
    //[bottle, shield, wand]

    for (int i1 = 0; i1 < subList1.size(); i1++) {

        for (int i2 = 0; i2 < subList2.size(); i2++) {

        if (subList1.get(i1).compareTo(subList2.get(i1)) < 0) {

            // first run: element 0: subList1 = amulet, subList2 = bottle

            String temp = subList1.get(i1);
            subList1.set(i1, subList2.get(i1));
            subList2.set(i1, subList1.get(i1));  

次の行でも IndexOutOfBoundsException が発生します。

if (subList1.get(i1).compareTo(subList2.get(i1)) < 0)

どんな助けでも大歓迎です。ありがとう。

4

4 に答える 4