2017-09-11 37 views
0

我需要一些帮助。我目前正在编写关于多态的程序,这是我作业的规定。我愿意就如何做到这一点提供建议。类型从int到ArrayList不匹配

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

公共静态无效removeDuplicate(ArrayList的列表)

写测试程序提示用户输入10个整数到一个列表并显示由一个空格分隔的不同整数。下面是一个样品运行:

输入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]; 
     } 
    } 

} 

} 
+0

每次'if'条件成功时,您都将arraylist重新分配给int元素。相反,将该元素“添加”到数组列表。 – Ray

+0

https://stackoverflow.com/questions/8452672/java-howto-arraylist-push-pop-shift-and-unshift – Ray

+1

最好的办法是在您阅读时检查重复项。要检查未排序列表中的重复内容,您必须查看整个列表,您拥有的代码只会删除相邻的重复项。另一个错误是,你将我初始化为0,然后检查i--,所以你要走出界限,同时改变我,让它循环永不终止 – Mitchel0022

回答

0

您不能转换或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]); 
     } 
    } 
} 
0
list = a[i]; 

我觉得这是你的问题,你想一个INT值赋给的ArrayList

相关问题