Was bewirkt der folgende Code? Kann die LinkedHashSet
ersetzt werden durch eine HashSet
?
public class CollectionFunction {
public <E> List<E> function(List<E> list) {
return new ArrayList<E>(new LinkedHashSet<E>(list));
}
}
Was bewirkt der folgende Code? Kann die LinkedHashSet
ersetzt werden durch eine HashSet
?
public class CollectionFunction {
public <E> List<E> function(List<E> list) {
return new ArrayList<E>(new LinkedHashSet<E>(list));
}
}
Was bewirkt der folgende Code?
Es scheint so, als ob es verwendet wird, um Duplikate aus einer Liste zu entfernen, ohne die Reihenfolge zu ändern
Kann das LinkedHashSet durch ein HashSet ersetzt werden?
Nein, die Bestellung wird nicht garantiert (#2)
Ein Set ist eine ungeordnete Sammlung von Elementen, während eine Liste die Reihenfolge der enthaltenen Elemente beibehalten muss. Sie können ein Set nicht verwenden wie HashSet
um eine Liste zu implementieren, da die Reihenfolge der Elemente nicht gespeichert wird. Ein verknüpfter Hash-Satz speichert diese Informationen.
Diese Funktion entfernt die doppelten Elemente und behält die Einfügereihenfolge bei.
wenn Sie a,b,c,d,a
als Eingabe erhalten Sie a,b,c,d
als Ausgabe.
Ja, Sie können
Ersetzen Sie LinkedHashSet durch HashSet, wenn Sie die Einfügereihenfolge nicht wünschen. Bestellung.
Die Ausgabe kann wie folgt aussehen b,c,d,a
wenn LinkedhashSet durch HashSet ersetzt wird
Sie erstellt eine ArrayList aus einem Objekt, das die Schnittstelle List implementiert. Die Klasse ArrayList hat einen Konstrukteur, der eine Collection: http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html Sie müssen nachsehen, ob auch das HashSet Collection implementiert http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html . Sie müssen auch nachsehen, ob das HashSet den entsprechenden Konstruktor bereitstellt. Da das HashSet beide Anforderungen erfüllt, können Sie es ersetzen :-).
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.