Warum ist die Reihenfolge beim Ändern falsch? In Java auf Liste setzen [Duplikat]
Nov 30 2020
Ich mache eine Reihe von Strings in einer Methode, aber wenn ich eine Liste eingebe, werden alle Strings stören ... (ich brauche die Reihenfolge) hier ist die Reihenfolge, die es aus der Datei liest: Rayan Lilia Moein Raman Hasti Rojina Behrad
Hier ist, was es zurückgibt: Behrad Rojina Rayan Lilia Moein Raman Hasti
public class IO {
public static File file = new File("googolia.txt");
static public Set<String> participant = new HashSet<>();
public void read() {
try {
FileReader reader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(reader);
String line;
while ((line = bufferedReader.readLine()) != null) {
String split[] = line.split("->");
participant.add(split[1]);//correct order
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void showDutys() {
//what duty each person have
IO io = new IO();
io.read();
ArrayList<String> participant = new ArrayList<>(IO.participant);
for (int i = 0; i < participant.size(); i++) {
System.out.println(participant.get(i));//incorrect order
}
IO.participant.removeAll(IO.participant);
participant.removeAll(participant);
System.out.println("=======================");
}
Antworten
Miguel Nov 30 2020 at 17:58
HashSetwird nicht implementiert SortedSet, daher müssen die Elemente nicht sortiert werden.
Sie können TreeSetstattdessen verwenden.