Android 从数组中删除重复项

Android 从数组中删除重复项,android,arrays,repeat,Android,Arrays,Repeat,我有一种从数组中排序和删除重复项的方法: public ArrayList<Integer> sortArray(ArrayList<Integer> listForSort) { List<Integer> sortTemp = new ArrayList<Integer>(); ArrayList<Integer> Sortedlist = new ArrayList<Integer>();

我有一种从数组中排序和删除重复项的方法:

public ArrayList<Integer> sortArray(ArrayList<Integer> listForSort) {

    List<Integer> sortTemp = new ArrayList<Integer>();
    ArrayList<Integer> Sortedlist = new ArrayList<Integer>();

    int[] array = new int[20];

for (int i = 0; i < listForSort.size(); i++) {
    array[i] = listForSort.get(i);
}

Arrays.sort(array);

for (int i = 0; i < array.length; i++) {
    if (!(Arrays.asList(sortTemp).contains((Integer)array[i])) && (array[i] != 0))   {
        Integer tempo = (Integer)array[i];
        Sortedlist.add(tempo);
        sortTemp.add(tempo);
        }
}
    return Sortedlist;
}
public ArrayList sortArray(ArrayList listForSort){
List sortTemp=new ArrayList();
ArrayList Sortedlist=新建ArrayList();
int[]数组=新的int[20];
对于(int i=0;i
但是我的方法没有删除重复项。有什么问题吗?

这是否编译过(
SortedList
,您试图返回的内容在上下文中甚至不存在)?。
无论如何,您应该首先创建一个字典(也称为map/hash)来删除重复,然后对该字典的所有键进行排序。

我的建议是使用一个集合。集合不允许输入重复项,因此您不必担心删除它们。可能类似于分拣集,因此分拣和重复删除是自动的。ConcurrentSkipListSet、NavigableSet、TreeSet也都是分类集。

你让自己更难做到这一点。ArrayList和List都实现了可比较的接口。允许您对其任何元素调用compareTo方法

listForSort.get(i).compareTo(sortedList.get(i));

使用list.hasNext()和迭代器考虑列表末尾的“下降”。它将使您的阵列操作更加高效

谢谢你,伙计!我是根据你的提示做的:HashSet hs=newhashset();hs.addAll(listForSort);listForSort.clear();listForSort.addAll(hs);