2016-05-06 23 views
-3

Ich möchte die vollständige Zeile entfernen, die dupliziert. Ich habe Hashmap verwendet, um die Duplikate in einer Arraylist zu entfernen, aber es wird immer noch dupliziert. Bitte hilf mir. Vielen Dank im Voraus.So entfernen Sie Duplikate in einer Arraylist

ArrayList<Act2010> act2010DataList = AtusAct2010Parser.hm; 
    ArrayList<Who2010> whoList = AtusWho2010Parser.hm; 
    HashMap<String, AtusRecords> hm = new HashMap<String, AtusRecords>(); 
    for(int i=0; i<whoList.size(); i++){ 
     hm.put(whoList.get(i).getStringId(), whoList.get(i)); 
    } 
    for(int i=0; i<act2010DataList.size(); i++){ 
     hm.put(act2010DataList.get(i).getStringId(), act2010DataList.get(i)); 
    } 
    Iterator<String> it = hm.keySet().iterator(); 

    while(it.hasNext()){ 
     String key = it.next(); 
     AtusRecords record = hm.get(key);} 
+3

Verwenden Sie einen 'Set' ... – MadProgrammer

+0

Verwenden Set https://docs.oracle. com/javase/7/docs/api/java/util/Set.html – Balram

+0

[einfachste Art, eine Liste in ein Set zu konvertieren? - Java] (http://StackOverflow.com/questions/1429860/easiest-way-to-convert-a-list-to-a-set-java) – MrSimpleMind

Antwort

1

Die natürliche Art und Weise zu vermeiden/Filter Duplikate ein Set verwendet wird, kann es Arbeit mit irgendwelchen primitiv oder sogar benutzerdefinierte Objekte Implementierung equals():

List<String> myListWithDuplicates = new ArrayList<String>(); 
myListWithDuplicates.add("apple"); 
myListWithDuplicates.add("peach"); 
myListWithDuplicates.add("mango"); 
myListWithDuplicates.add("banana"); 
myListWithDuplicates.add("apple"); 
myListWithDuplicates.add("apple"); 

List<String> listWithoutDuplicates = new ArrayList<String>(new HashSet<String>(myListWithDuplicates)); 


System.out.println("list with duplicates: "+ myListWithDuplicates); 
System.out.println("List without duplicates: "+ listWithoutDuplicates); 

genießen

0

I denken Sie Arraylist wie

("A", "1"); 
 
    ("B", "2"); 
 
    ("C", "2"); 
 
    ("A", "1"); 
 
    ("C", "3");
haben

Und Ihre Antwort wird wie sein

("A", "1"); 
 
    ("B", "2"); 
 
    ("C", "2"); 
 
    ("C", "3");

ArrayList<T> original = ... 
 
List<T> uniques = new ArrayList<T>(); 
 
for (T element : original) { 
 
    if (!uniques.contains(element)) { 
 
    uniques.add(element); 
 
    } 
 
}

+0

Meine Arraylist ist wie ("A", "1") ("A", "1"), ("A", "3") ("A", "4") Also möchte ich die Duplikate entfernen Wert, der 1. – learner

+0

Ich möchte so antworten ("A", "1"), ("A", "3") ("A", "4"). – learner

Verwandte Themen