vendredi 2 janvier 2015

2-dimensionales Array

Hi :)



Ich würde gerne ein 2-dimensionales Array anlegen, wobei ich in jeder Zeile aber unterschiedlich viele Elemente habe.



Ich vermute, das geht nicht. Ist das richtig?



Darum habe ich das mit ArrayList probiert, aber das klappt leider auch nicht.


Java Code:






  1. import java.util.ArrayList;



  2. class Main



  3. {



  4. public static void main(String [] args)



  5. {



  6. ArrayList<Integer> a0 = new ArrayList<Integer>();



  7. a0.add(1);



  8. a0.add(2);



  9. a0.add(3);



  10. ArrayList<Integer> a1 = new ArrayList<Integer>();



  11. a1.add(4);



  12. ArrayList<ArrayList> a = new ArrayList<ArrayList>();



  13. a.add(a0);



  14. a.add(a1);



  15. System .out.println(a.get(1).get(0));



  16. a.get(0).set(1, 200);



  17. System .out.println(a.get(0).get(0));



  18. System .out.println(a.get(0).get(1));



  19. System .out.println(a.get(0).get(2));



  20. }



  21. }







Ich habe dann nämlich ein Problem, wenn ich einen Wert ändern will.


Java Code:






  1. javac -Xlint Main.java



  2. Main.java:12: warning: [rawtypes] found raw type: ArrayList



  3. ArrayList<ArrayList> a = new ArrayList<ArrayList>();



  4. ^



  5. missing type arguments for generic class ArrayList<E>



  6. where E is a type-variable:



  7. E extends Object declared in class ArrayList



  8. Main.java:12: warning: [rawtypes] found raw type: ArrayList



  9. ArrayList<ArrayList> a = new ArrayList<ArrayList>();



  10. ^



  11. missing type arguments for generic class ArrayList<E>



  12. where E is a type-variable:



  13. E extends Object declared in class ArrayList



  14. Main.java:16: warning: [unchecked] unchecked call to set(int,E) as a member of the raw type ArrayList



  15. a.get(0).set(1, 200);



  16. ^



  17. where E is a type-variable:



  18. E extends Object declared in class ArrayList



  19. 3 warnings







Wie kann ich denn so ein 2-dimensionales Array mit unterschiedlicher Anzahl an Elementen je Zeile definieren, wo ich dann nicht nur auslesen, sondern auch die Werte ändern kann?



Und warum schreibt hier die Fehlermeldung etwas von raw types und generics? Die habe ich doch alle korrekt und vollständig definiert, oder?





2-dimensionales Array

0 commentaires:

Enregistrer un commentaire