我正在尝试使用冒泡排序对数组进行排序,但它不起作用。它说'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));
}
如何解决此错误?
答案 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类中的方法。