【发布时间】:2013-10-07 14:26:56
【问题描述】:
我是 Java 新手...
我有两个 ArrayList:
subList1
subList2
它们已被另一种方法填充,并且在运行时,列表包含以下字符串:
subList1: [amulet, map, stone, sword]
subList2: [bottle, shield, wand]
我需要做的是对两个列表进行排序,以便 subList1 包含所有按字母顺序排列的小于 subList2 中元素的元素。此外,两个列表大小必须保持不变。
预期输出:
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)
非常感谢任何帮助。谢谢。
【问题讨论】:
-
您得到的例外是因为您使用
i1代替subList2,我认为它没有i1元素。 -
感谢您指出这一点。很有帮助。
标签: java sorting arraylist swap