dlaczego kolejność jest nieprawidłowa podczas zmiany Ustaw na listę w java [duplikat]

Nov 30 2020

tworzę zestaw ciągów w metodzie, ale kiedy umieszczam na liście, wszystkie ciągi będą nieuporządkowane ... (potrzebuję kolejności) tutaj jest kolejność, którą odczytuje z pliku: Rayan Lilia Moein Raman Hasti Rojina Behrad

oto, co zwraca: 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("=======================");
}

Odpowiedzi

Miguel Nov 30 2020 at 17:58

HashSetnie implementuje SortedSet, więc nie musi sortować swoich elementów.

Możesz użyć TreeSetzamiast tego.