ArrayList <number>不适用于参数(int)

时间:2018-01-29 06:01:01

标签: java

这是我的代码,如下所示:

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);  

任何人都可以帮我修复错误吗?谢谢!

3 个答案:

答案 0 :(得分:1)

您正在使用的arraylist持有数字类型。您需要在列表中存储数字对象而不是整数。

示例:

ArrayList<Number> list = new ArrayList<>();
Number num = new Number(12.0);
list.add(num);

答案 1 :(得分:0)

  1. ArrayList<Number>中,您必须添加Number而不是int的实例。
  2. 由于您的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));