सेट को गलत करते हुए आदेश को जावा में सूची में क्यों बदला गया है [डुप्लिकेट]
Nov 30 2020
मैं एक विधि में स्ट्रिंग्स का एक सेट बनाता हूं, लेकिन जब मैं एक सूची में डालता हूं तो सभी स्ट्रिंग्स विकार हो जाएंगे ... (मुझे आदेश की आवश्यकता है) यहां वह आदेश है जो इसे फ़ाइल से पढ़ा जाता है: रेयान लीलिया मोइन रमन हस्ती रोजीना बेराड्रा
यहाँ यह है कि यह क्या रिटर्न: बेह्रद रोजिना रयान लीलिया मोइन रमन हस्ती
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("=======================");
}
जवाब
Miguel Nov 30 2020 at 17:58
HashSetलागू नहीं करता है SortedSet, इसलिए इसे अपने तत्वों को क्रमबद्ध करने की आवश्यकता नहीं है।
आप TreeSetइसके बजाय उपयोग कर सकते हैं ।