这是我的代码,如下所示:
import java.util.*;
import java.math.*;
public class Exercise {
public static void main(String[] args){
ArrayList<Number> list = new ArrayList<>();
list.add(59);
list.add(47);
list.add(32);
list.add(43);
list.add(95);
list.add(36);
}
public static void sort(ArrayList<Number> list){
int iteration = list.size();
while (iteration >= 0){
for (int i = 0; i < list.size() - 1; i++){
for (int k = 1; k < list.size(); k++){
if (list.get(i).getValue() > list.get(k).getValue()){
Number temp = list.get(k);
list.set(k, list.get(i));
list.set(i, temp);
}
}
}
iteration --;
}
}
}
class Number{
double d;
Number(double d){
this.d = d;
}
double getValue(){
return d;
}
}
错误消息是:
类型ArrayList中的方法add(int,Number)不适用于arguments(int)
错误对应于此部分:
list.add(59);
list.add(47);
list.add(32);
list.add(43);
list.add(95);
list.add(36);
任何人都可以帮我修复错误吗?谢谢!
答案 0 :(得分:1)
您正在使用的arraylist持有数字类型。您需要在列表中存储数字对象而不是整数。
示例:
ArrayList<Number> list = new ArrayList<>();
Number num = new Number(12.0);
list.add(num);
答案 1 :(得分:0)
ArrayList<Number>
中,您必须添加Number
而不是int
的实例。由于您的Number
构造函数需要double
而不是int
,您必须填写它:
list.add(new Number(59.0));
答案 2 :(得分:0)
您实际上并未添加数字类,而是尝试添加整数。
试试这个
list.add(new Number(59));
list.add(new Number(47));
list.add(new Number(32));
list.add(new Number(43));
list.add(new Number(95));
list.add(new Number(36));