如何在不使用Java中的集合的情况下对数组列表进行排序
问题描述:
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);
}
交换时出现错误,LHS应该是可变的.我明白. 设置方法在这里有效,但我不想使用. 有没有一种方法可以不使用set方法呢? 非常感谢您的帮助.
It is giving error while swapping, The LHS should be variable. I understand it. Set method works here but I do not want to use. Is there a way to do it without using set method? Help is really appreciated.
答
arraylist.get(i)= arraylist.get(i);
arraylist.get(j) =tmp;
您不能为方法调用分配值.正如编译器告诉您的那样,分配的左侧必须是变量.
You can't assign a value to a method call. As the compiler told you, the left hand side of an assignment must be a variable.
使用set
方法:
arraylist.set(i,arraylist.get(j));
arraylist.set(j,tmp);
有没有不用set方法的方法吗?
Is there a way to do it without using set method?
不.除非您希望将ArrayList转换为数组,否则请对数组进行排序,然后使用排序后的数组更新ArrayList.
No. Unless you wish to convert your ArrayList to an array, sort the array, and update the ArrayList with the sorted array.