Ich habe eine Arraylist enthält einige Werte, die in einer Reihenfolge sind (richtige Positionen), jetzt möchte ich wischen/set/manuelle shuffle ändern Sie die Werte in Unordnung der Arraylist. Unteres Bild kann meine Idee geben. Ändern Sie Array-II zu Array-I. Zum Mischen können wir collection.shuffle() verwenden, aber hier habe ich eine Textdatei, in dieser Textdatei habe ich eine Originalposition sowie die aktuelle Position der Daten im Array in die Textdatei geschrieben. zB Bildgebung, haben wir eine Textdatei Name MyFile.txt, I-Daten, dass wie dies schrieb, "original_position ~ current_position" zum Beispiel 0 ~ 0 1 ~ 2 2 ~ 4 3 ~ 3 4 ~ 1 Also würde ich basierend auf den obigen Daten das Array mischen/setzen.Wie man die Array-Liste manuell mischen
5
A
Antwort
2
Hier fand ich Lösung zu meiner Frage bitte Beobachter hier. "itemList_dump" ist eine Arraylist, die Daten enthält.
if (i < itemList_dump.size()) {
MyBitamp Data = itemList_dump.get(original_position_val);
// setting Values according to our algorithm
Data.setItemCurPos(original_position_val);
Data.setItemPosition(current_positon_val);
Data.setrotation(rotataion_val);
}
}
Collections.sort(itemList_dump, new Comparator<MyBitamp>() {
@Override
public int compare(MyBitamp o1, MyBitamp o2) {
if (o1.getItemPosition() > o2.getItemPosition()) {
return 1;
} else if (o1.getItemPosition() < o2.getItemPosition()) {
return -1;
} else {
return 0;
}
}
});
4
Collections.shuffle()
wird es für Sie tun. Collections.sort()
wird es in der natürlichen Reihenfolge sortieren (A, B, C, D, E ..), wenn Sie möchten, dass es sortiert wird.
7
Verwenden Sie Collections.shuffle(YOUR_ARRAY_LIST);
, um es zu tun.
List<String> ranList = new ArrayList<String>();
// populate the list
ranList.add("A");
ranList.add("B");
ranList.add("C");
System.out.println("Initial collection: " + ranList);
// shuffle the list
Collections.shuffle(ranList);
System.out.println("Final collection after shuffle: " + ranList);
Die Art und Weise des Ansatzes für die manuelle Sortierung geht so:
lesen und Ihre Daten aus der Datei zu Map
private static Map<String, String> readFile(String fileNameWithPath) throws Exception {
Map<String, String> map = new LinkedHashMap<String, String>();
File file = new File(fileNameWithPath);
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
String sCurrentLine;
String[] splitPosition;
while ((sCurrentLine = bufferedReader.readLine()) != null) {
splitPosition = sCurrentLine.split("~");
map.put(splitPosition[0], splitPosition[1]);
}
return map;
}
Und Ihre Hauptmethode ist wie hinzufügen:
try {
List<String> list = new ArrayList<String>();
List<String> customeRandomList = new LinkedList<String>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
list.add("E");
Map<String, String> map = Test.readFile("D://RandomList.txt");
for (Map.Entry<String, String> entry : map.entrySet()) {
customeRandomList.add(list.get(Integer.parseInt(entry.getValue())));
}
for (String result : customeRandomList) {
System.out.println(result);
}
} catch (Exception e) {
e.printStackTrace();
}
Verwandte Themen
- 1. wie man Textakte liest und Daten in der Arrayliste speichert
- 2. Wie man von der letzten zur ersten ArrayListe iteriert?
- 3. Wie man Kreisdiagramm manuell zeichnet?
- 4. Wie man Polymerelement manuell lädt
- 5. Wie initialisiert man die Werte für die Gewichte manuell?
- 6. Wie man Expression manuell erstellt, die immer wahr zurückgibt?
- 7. Wie berechnet man den Codeabdeckungsprozentsatz für die Pfadabdeckung manuell?
- 8. Wie man die $ Fehlerwerte für Input-Tags manuell ändert - Angularjs
- 9. Wie scrollt man ein Panel manuell?
- 10. Wie man EntityReference manuell lädt ohne EntityReference.Load()
- 11. GridView - Wie man EntityDataSource manuell aktualisiert?
- 12. Wie man Wordpress-Website manuell sichert
- 13. Wie man manuell eine tiefe Kopie
- 14. Wie man Binding in SapUi5 manuell erstellt?
- 15. Wie man Knopfeingabeart in ASP.NET manuell einstellt?
- 16. Wie man MariaDBDataSource manuell erstellt und konfiguriert
- 17. Wie man Linux-Systemzeit manuell ändert?
- 18. Wie man eine DataGridViewComboBoxColumn manuell ablegt?
- 19. Wie man einen AST manuell konstruiert?
- 20. Wie man Kriegsdateien manuell zu Tomcat ausliefert?
- 21. wie man Einhorn manuell neu startet
- 22. Wie man Bildfeld in Django manuell zuweist
- 23. Wie man TDateTimePicker Sprache manuell einstellt?
- 24. Wie man manuell zwei Javascript-Dateien bündelt?
- 25. die Treiber manuell
- 26. Linq: Mischen Sie die Wörterbücher
- 27. Wie kann die Federvalidierung manuell ausgelöst werden?
- 28. Bootstrap typeahead - Wie wird die Standardwert manuell
- 29. Wie kann ich die Identität manuell einfügen?
- 30. Mischen von Matplotlib-Patches mit Polarplot?
so einfach sein könnte, ich weiß, aber hier senario anders, ich habe Daten in der Textdatei, die Textdatei enthält, original_position sowie current_position des Arrays, basierend auf, dass Ich mag würde zu Setzen Sie die Daten in Array-II. d. h. manuelles Shuffle. – user3285681
Ist Ihre manuelle Shuffle immer gleich? Als solche sollte die 0,1,2,3,4 immer zu 0,2,4,3,1 – ashokramcse
shuffle sein Könnten Sie bitte diese Beispieldatei offen legen. – ashokramcse