【问题标题】:type mismatched from int to ArrayList从 int 到 ArrayList 的类型不匹配
【发布时间】:2023-03-20 09:35:01
【问题描述】:

我需要一些帮助。我目前正在编程关于多态性,这是我作业的规定。我愿意就如何去做。

作业规定: 使用以下标头编写一个从整数数组列表中删除重复元素的方法:

public static void removeDuplicate(ArrayList list)

编写一个测试程序,提示用户在列表中输入 10 个整数,并显示由一个空格分隔的不同整数。这是一个示例运行:

输入十个整数:10 20 30 20 20 30 50 60 100 9

不同的整数是:[10, 20, 30, 50, 60, 100, 9]

这是我目前的代码:

    import java.util.ArrayList;
    import java.util.Scanner;

public class ArrayInput extends ArrayList{
public static int a[];

public static int[] inputArrays(int a[]) {
    for(int i = 0; i < 10; i++) {
        Scanner input = new Scanner(System.in);
        a[i] = input.nextInt();
        }
    return a;
}

public static void removeDuplicate(ArrayList list) {
    for(int i = 0; i < 10; i++) {
        if(a[i] != a[i--] ) {
            list = a[i];
        }
    }

}

}

【问题讨论】:

  • 每次“if”条件成功时,您都会将 arraylist 重新分配给一个 int 元素。相反,将元素“添加”到数组列表中。
  • 最好的办法是在阅读时检查重复项。要检查未排序列表中的重复项,您必须查看整个列表,您拥有的代码只会删除彼此相邻的重复项。另一个错误是您将 i 初始化为 0 然后检查 i--,因此您将越界并同时更改 i,从而使您的循环永远不会终止
  • 你需要的签名很糟糕,你不应该使用原始类型。
  • 扩展ArrayList 是完全没有必要的。您真正想要的是a 成为ArrayList&lt;Integer&gt; 而不是int[]

标签: java eclipse arraylist


【解决方案1】:
 list = a[i];

我认为这是您的问题所在,您正在尝试将 int 值分配给 ArrayList

【讨论】:

    【解决方案2】:

    您不能将 int 数组转换或强制转换为 ArrayList,但如果您想将元素添加到列表中,您可以执行以下操作:

    public static void removeDuplicate(ArrayList list) {
        for(int i = 0; i < 10; i++) {
            if(a[i] != a[i--] ) {
                //change code here
                list.add(a[i]);
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-16
      • 1970-01-01
      • 1970-01-01
      • 2011-12-27
      • 2013-09-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多