samedi 25 avril 2015

ArrayList Gruppieren, "Doppelte Werte" Addieren

Hallo Liebe Community,

Ich hab folgendes Problem, nämlich gibt der User über eine Gui folgendes ein/wird ausgefüllt.

So nun sollen diese Werte in eine Tabelle geschrieben werden. Und da fängt die Katastrophe an...
Das die Werte in die Tabelle übernommen werden klappt. Nur leider finde ich keine Möglichkeit
Diese zusammenzufassen...
Java Code:

  1. String inhalt = jTextArea1.getText().toString();
  2. List<String> myList = new ArrayList<String>(Arrays.asList(inhalt.split("\n")));

Hier erhalte ich
Java Code:

  1. [120 Bananen, 130 Kirschen, 10 Bananen, 20 Kirschen]


Also dachte ich mir nochmal bei " " teilen, bzw davor ", " mit "," ersetzen bzw noch der Reihenfolge nach Sortiert.
Das passiert dann darüber...
Java Code:

  1. private void putTextInList(){
  2. String inhalt = jTextArea1.getText().toString();
  3. List<String> myList = new ArrayList<String>(Arrays.asList(inhalt.split("\n")));
  4. //Set<String> s = new HashSet<String>(myList);
  5. myList = new ArrayList<String>(new HashSet<String>(myList));
  6. inhalt = new StringBuilder(myList.toString()).reverse().toString();
  7. inhalt = inhalt.toString().replace("[","");
  8. inhalt = inhalt.toString().replace("]","");
  9. inhalt = inhalt.toString().replace(",",",");
  10. inhalt = inhalt.toString().replace(" ,",", ");
  11. myList = new ArrayList<String>(Arrays.asList(inhalt.split(", ")));
  12. Collections.sort(myList);
  13. inhalt = new StringBuilder(myList.toString()).reverse().toString();
  14. inhalt = inhalt.toString().replace(" ,",", ");
  15. ArrayList<String> myMaterialList = new ArrayList<String>(Arrays.asList(inhalt.split(" ")));
  16. inhalt = myMaterialList.toString().replace(",,",",");
  17.  
  18. inhalt = inhalt.toString().replace("[","");
  19. inhalt = inhalt.toString().replace("]","");
  20. myMaterialList = new ArrayList<String>(Arrays.asList(inhalt.split(", ")));
  21. //int x = myMaterialList.size()/2;
  22. System.out.println(myMaterialList.toString());
  23.  
  24.  
  25.  
  26. }


Java Code:

  1. //Ausgabe
  2. [120, Bananen, 10, Bananen, 130, Kirschen, 20, Kirschen]

also dachte ich mir jetzt mit einer Forschleife das ganze Gruppieren... Aber das klappt irgendwie nicht...
Java Code:

  1. String namenszwischenspeicher = "";
  2. int zwischenspeicher = 0;
  3. for (int i = 0; i < myMaterialList.size(); i=i+2) {
  4.  
  5. if(namenszwischenspeicher.equals(myMaterialList.get(i+1))){
  6. zwischenspeicher += Integer.parseInt(myMaterialList.get(i));
  7. } else {
  8. t.addRow(new Object[]{namenszwischenspeicher,zwischenspeicher});
  9. }
  10.  
  11. namenszwischenspeicher = myMaterialList.get(i+1);
  12. zwischenspeicher = Integer.parseInt(myMaterialList.get(i));
  13. }
  14.  
  15. ///.. Methode addrow.
  16. public void addRow(Object[] o){
  17. DefaultTableModel modelTemp = (DefaultTableModel) jTable1.getModel();
  18. modelTemp.addRow(o);
  19. }


Die Tabelle sind dann so aus...
Miniaturansichten angehängter Grafiken
Klicken Sie auf die Grafik für eine größere Ansicht  Name: aOZdkXK.png  Hits: -  Größe: 18,7 KB  ID: 7687  


ArrayList Gruppieren, "Doppelte Werte" Addieren

0 commentaires:

Enregistrer un commentaire