如何在不使用Java集合的情况下在数组列表中进行排序

0 java sorting arraylist

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方法呢?非常感谢帮助.

Era*_*ran 7

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.