java - 尝试使用 ArrayList<Integer> 创建冒泡排序时出现问题

标签 java

您好,我正在尝试弄清楚如何在 Java 中使用 BubbleSort,但我的代码出错了,我不知道为什么

import java.util.ArrayList;

public class SortsRunner {

    public static void BubbleSort(ArrayList<Integer> nums) {
        ArrayList<Integer> arr = new ArrayList<Integer>();
        int n = arr.size();
        for (int i = 0; i < n-1; i++) 
            for (int j = 0; j < n-i-1; j++) 
                if (arr.get(j) > arr.get(j+1)) 
                { 

                    int temp = arr.get(j); 
                    arr.get(j) = arr.get(j+1); 
                    arr.get(j+1) = temp; 
                }
        }
    public static void SelectionSort(ArrayList<Integer> nums) {

        }
    public static void printArrayList(ArrayList<Integer> nums) {
        for(int i = 0; i < nums.size(); i++) {
            System.out.println(nums.get(i) + " ");
            }
        System.out.println();
        }
    public static ArrayList<Integer> makeRandomArrayList() {
        ArrayList<Integer> nums = new ArrayList<>();
        for(int i = 0; i < (int)(Math.random() * 11) + 5; i++) {
            nums.add((int)(Math.random() * 100));
            }
        return nums;
        }

public static void main(String[] args) {
printArrayList(makeRandomArrayList());

}

}

当我到达 arr.get(j) = arr.get(j+1);arr.get(j+1) = temp; 时左侧错误提示“赋值的左侧必须是变量。”谁能帮我解决这个问题吗?

最佳答案

arr.get(j) = arr.get(j+1);
arr.get(j+1) = temp; 

您正在尝试为方法调用的结果分配一个值。

你就是不能这么做。您只能分配给局部变量、当前类中的字段、字段访问(例如 foo.bar = ...)或数组元素(例如 foo[0] = ...)。

相反,您应该使用 set 来更新列表元素:

arr.set(j, arr.get(j+1));
arr.set(j+1, temp);
<小时/>

对于在列表中交换两个元素的特定情况,您可以使用 Collections.swap :

Collections.swap(arr, j, j+1);

关于java - 尝试使用 ArrayList<Integer> 创建冒泡排序时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60435766/

相关文章:

java - setText 和 setValue 无法正常工作

java - 如何获取自动生成的键并设置结果集类型?

java - Java SE 应用程序和 Java EE 应用程序之间的区别?

java - 比较两个列表并在 Java 中输出缺失和多余的元素

java - java中的正则表达式代码

java - session 在失效后仍然存在

java - Apache Flink WordCount 示例 - 线程 "main"java.lang.NoClassDefFoundError : org/apache/flink/api/common/functions/FlatMapFunction 中的异常

java - Spring 中应用程序上下文和 Web 上下文中分别包含哪些 Bean?

java - GoogleJsonResponseException : 400 Bad Request "Invalid query parameter type"

java - 如何从 .Net 调用 Java 程序?