2016-05-26 11 views
-3

Der grundlegende Unterschied zwischen dem Satz und der Liste ist, dass Satz wird nicht die Duplikate erlauben die Frage ist, warum kann man für Schleife für den Satz Original verwenden, wie wir für die Listewarum kann man für Schleife orginal verwenden für Set

verwenden

Beispiel: Länge des Satzes und derselben Liste ist

for(int i =0 ; i< list.size;i++){ 
    list.get(i); 
    set.get(i); // here it is throwing an error like get(index) cant be applied for set 

}

aber wenn i Voraus für Schleife verwenden (für jeden) seine Arbeits

for(Object sample : set){ 
system.out.println(sample); 

}

, warum dies geschieht ... Gibt es eine operative defference zwischen for-Schleife und für jeden Satz und Liste ....

jede Hilfe und Anregung nützlich wäre ... danke Sie im Voraus

+1

Eine Menge hat keine 'get()' Methode. Sie sollten die Dokumente überprüfen https://docs.oracle.com/javase/7/docs/api/java/util/Set.html – forgivenson

Antwort

6

Ein Set hat keine Bestellung, und daher hat es keine get(index) Methode. Daher können Sie nicht set.get(i) anrufen.

Die erweiterte for-Schleife hingegen funktioniert mit jeder Klasse, die Iterable (sowie mit Arrays) implementiert, die alle Collection enthält. Für Set s wird es über die Elemente in einer Reihenfolge iterieren, die von der spezifischen Implementierung Set abhängt.

+0

Sie können einen Set-Iterator erhalten, der es Ihnen ermöglichen würde, einen Iterator für die Schleife zu verwenden, indem Sie verwenden .iterator() – steves165

+0

danke :) @Eran und ich benutze set.iterator(). next(). toString() um die Elemente zu erhalten –