ArrayList < Integer > arraylist = new ArrayList < Integer > ();
arraylist.add(10010);
arraylist.add(5);
arraylist.add(4);
arraylist.add(2);
for (int i = 0; i < arraylist.size(); i++) {
for (int j = arraylist.size() - 1; j > i; j--) {
if (arraylist.get(i) > arraylist.get(j)) {
int tmp = arraylist.get(i);
arraylist.get(i) = arraylist.get(i);
arraylist.get(j) = tmp;
}
}
}
for (int i: arraylist) {
System.out.println(i);
}
Run Code Online (Sandbox Code Playgroud)
交换时出错,LHS应该是可变的.我明白了.Set方法在这里工作,但我不想使用.有没有办法不使用set方法呢?非常感谢帮助.
arraylist.get(i)= arraylist.get(i);
arraylist.get(j) =tmp;
Run Code Online (Sandbox Code Playgroud)
您无法为方法调用指定值.正如编译器告诉你的那样,赋值的左侧必须是变量.
使用set方法:
arraylist.set(i,arraylist.get(j));
arraylist.set(j,tmp);
Run Code Online (Sandbox Code Playgroud)
有没有办法不使用set方法呢?
否.除非您希望将ArrayList转换为数组,否则对数组进行排序,并使用已排序的数组更新ArrayList.
| 归档时间: |
|
| 查看次数: |
30739 次 |
| 最近记录: |