使用冒泡排序对数组进行排序,需要错误:变量,找到:值

时间:2014-01-07 17:34:13

标签: java arrays sorting bubble-sort

我正在尝试使用冒泡排序对数组进行排序,但它不起作用。它说'required:variable,found:value'

  

Array.java:143:错误:意外类型
                      temp.get(d)= temp.get(d + 1);                              


^     
要求:变量
    发现:价值
  

  Array.java:144:错误:意外类型
                      temp.get(d + 1)= swap;
                             





    要求:变量
    发现:价值



所以Main给出了,我需要做的就是编写这个Bubble排序函数


这就是我写的

public static void bubbleSort(Array<Integer> lista){
boolean swapped;
    Array<Integer> temp;
    int n;

    n= temp.size;

    int swap;

     for (int c = 0; c < ( n - 1 ); c++) {
        for (int d = 0; d < n - c - 1; d++) {
            if (temp.get(d) > temp.get(d+1))
            {
                swap = temp.get(d);
                temp.get(d) = temp.get(d+1);
                temp.get(d+1) = swap;
            }
        }
     }
}



这是给出的主要

public static void main(String[] args) throws IOException{
    BufferedReader stdin = new BufferedReader( new InputStreamReader(System.in)); 
    String s = stdin.readLine();
    int N = Integer.parseInt(s);
    Array<Integer> niza =new Array<Integer>(N);
    bubbleSort(niza);

    for(int i=0;i<N;i++){
        s = stdin.readLine();
        niza.set(i, Integer.parseInt(s));
    }

    System.out.println(brojDoProsek(niza));
}


如何解决此错误?

2 个答案:

答案 0 :(得分:2)

假设Array实际上是ArrayList,并且假设您要在索引d + 1中存储索引为d的值,则需要

temp.set(d, temp.get(d + 1));

temp.get(d)不是您可以为其指定值的变量。它是一个返回值的表达式。并且您无法为值分配任何内容。

答案 1 :(得分:0)

正如其他用户所说,你必须使用set()方法来更改存储在数组索引中的值。

我认为您打算使用ArrayList。如果是这种情况,那么您应该使用n = temp.size()而不是n = temp.size来获取列表的长度,因为size是ArrayList类中的方法。