Vergleichen von Elementen in der gleichen Liste Java
Will ich vergleichen die Elemente in der gleichen List (The List "list)
und wenn es dieselben sind, drucken Sie eine Linie, ich bin ziemlich neu in der Programmierung und ich noch nicht ganz verstehen, das Unterschied zwischen Liste und ein array und wenn Sie Sie verwenden.
Jemand freundlicherweise vorgeschlagen, den folgenden code und obwohl es compliles wird nichts ausgedruckt. Da gibt es zwei Paare in meinem array würde ich erwarten, etwas zu drucken, die mindestens einmal. Jede Hilfe wäre sehr geschätzt, danke!
List<Double> list = new ArrayList<Double>();
while (search.find()){
list.add(Double.parseDouble(search.group(1)));
}
for(int i= 0 ; i < list.size()-1; i++){
//System.out.println(list.get(i)); //Successfully prints out all doubles in the SHADING:BUILDING:DETAILED class
for(int k = i+1 ; k < list.size() ; k++){
if(list.get(i) == list.get(k)){
System.out.println(i + "and" + k + "are pairs");
}
}
}
}
}
- Warum würden Sie wollen, um eine Liste zu verwenden, wenn Sie code haben, der arbeitet für ein Array, und Sie wissen nicht den Unterschied zwischen den beiden sowieso. Ich empfehle die Lektüre bis auf die docs so erhalten Sie ein besseres Verständnis für die zwei, damit Sie herausfinden können, welche es ist, müssen Sie
InformationsquelleAutor Anton James | 2014-05-08
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Weise, die Sie programmiert haben, der comparation wiederholt sich. Außerdem, dass ist nicht die richtige Art des Zugriffs auf ein element in einer Liste, fürchte ich.
Zum Beispiel, können sagen, Sie haben i = 0 (Wert 2.0 z.B.) und k = 2 (Wert 5.2), aber später haben Sie i = 2 (5.2) und k = 0 (2.0), das ist das gleiche. Ich schlage vor, Sie die folgenden, vermeidet diese Wiederholung.
Natürlich, Sie haben, um sicherzustellen, dass die Liste die Größe ist größer als 1, sonst wird es werfen OutOfBoundsException.
Hoffe das hilft ^^
EDIT #2
Versuchen Sie, und verwenden Sie die folgenden wenn, es enthält einen null-Sicheres gleich:
Zuerst sollten Sie das Update:
Werden:
Zweitens sollten Sie eine Bedingung hinzufügen, um sicherzustellen
i != k
(oder in anderen Worten - du bist nicht der Vergleich eines Elements zu sich selbst.Drittens, Sie können nicht auf eine Liste wie du:
list[i]
Sie verwenden solltenlist.get(i)
Können Sie den folgenden code verwenden:
Eine Liste ist im Grunde nur ein variabler Länge-array. Sie können den Zugriff auf Daten aus es mit der get(int) Methode, die wird der n-te Wert aus der Liste und set(int, Object), um den n-TEN Wert zu dem gegebenen Objekt.
Den javadocs sind deine Freunde. http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html