如何从java中的Arraylist中删除重复的元素

时间:2016-01-16 10:13:07

标签: java android

    { "744101", "744101","744101", "744102",744102","744102","744102","744102","744103","744103"}
      List<String> list2=new new ArrayList<String>();  //
           Arrays.sort(iArr);
                            for(int k=0;k<iArr.length;k++) {
                                list2.add(String.valueOf(iArr[k]));
                            }

   List li2 = new Array List(new HashSet(list2)); 

尝试排序数组列表时,我无法获得结果。请纠正我。

3 个答案:

答案 0 :(得分:2)

TreeSet对元素进行排序并删除重复项。

switch(Factory.createFactory()) {
case let mgr as SubClass:
    print("Subclass")
    mgr.SubClassMethod()
case let mgr as AnotherClass:
    print("AnotherClass")
    mgr.AnotherClassMethod()
// default case
case let mgr as IInterface:
    print("Unknown specific regarding return type")
}

答案 1 :(得分:0)

试试这个:

   List<String> list = new ArrayList<>();
    Set<String> set = new HashSet<>();
    hash.addAll(list);
    list.clear();
    list.addAll(hash);

如果你想要的话,还有排序列表。

答案 2 :(得分:0)

正如Eran所提到的,由于使用了HashSet实现,您当前的实现会“清理”列表,因为此Set实现不保留顺序。请尝试使用LinkedHashSet。正如javadoc中提到的,它避免了与TreeSet相关的开销。 代码就是这样的

 String[] arrayToProcess = { "744101", "744101","744101", "744102","744102","744102","744102","744102","744103","744103"};

 //creates array and sorts the list
 List<String> sortedList = Arrays.asList(arrayToProcess);
 Collections.sort(sortedList);

 //removes duplicates the list, while retaining order of sorted list
 Set<String> uniqueNumbers = new LinkedHashSet<String>();
 uniqueNumbers.addAll(sortedList);

请注意,正在使用的Set的实现是LinkedHashSet。此片段也会生成数组的两个副本,因此如果数组大小很大,我建议不要使用它。

我建议你在java中查找implementations of collections。因为他们每个人都有自己的优点和缺点: