Datentypen Zwei dimensionale LinkedList

Hallo zusammen,

ich bin gerade dabei zu versuchen eine Matrix mit Hilfe von LinkedList zu erstellen. Hierbei würde ich gerne die Liste mit Werten füllen und habe bereits einen Ansatz. Ich kann mir jedoch sehr gut vorstellen, dass das ganze falsch ist und würde euch deswegen um ein Feedback bitten. Bin ich auf dem falschen Weg? Wie müsste ich es eventuell anders machen?
Das habe ich bis jetzt:

Java:
public class Matrix {

    public int zeilen;
    public int spalten;
    public int wert;

    
    public Matrix(int zeilen, int spalten) {
        
        LinkedList<Integer> matrix = new LinkedList<Integer>();
        
        for(int i = 0; i <= (spalten - 1); i++ ) {
            matrix.add(0);
        }
        
        for( int i = 0; i <= (zeilen -1); i++) {
            matrix.add(0);
        }
 
Jede Zeile ist dann eine LinkedList<Integer>. Du musst also der matrix pro Zeile eine LinkedList hinzufügen, jeder Zeile (LinkedList) pro Spalte einen int hinzufügen.
 
Jede Zeile ist dann eine LinkedList<Integer>. Du musst also der matrix pro Zeile eine LinkedList hinzufügen, jeder Zeile (LinkedList) pro Spalte einen int hinzufügen.
Java:
public Matrix(int zeilen, int spalten) {
        
        LinkedList<LinkedList<Integer>> matrix = new LinkedList<>();
        LinkedList<Integer> zeile = new LinkedList<>();

        for(int i = 0; i <= (zeilen - 1); i++) {
            matrix.add(zeile);
        }
        
        for(int i = 0; i <= (spalten - 1); i++ ) {
            zeile.add(0);
        }
        
    }

In etwa so?
 
Java:
public Matrix(int zeilen, int spalten) {
    
        LinkedList<LinkedList<Integer>> matrix = new LinkedList<>();
        LinkedList<Integer> zeile = new LinkedList<>();

        for(int i = 0; i <= (zeilen - 1); i++) {
            matrix.add(zeile);
        }
    
        for(int i = 0; i <= (spalten - 1); i++ ) {
            zeile.add(0);
        }
    
    }

In etwa so?
Nein. Du musst in jede Zeile eine neue LinkedList einfügen und nicht immer die selbe Liste.
Java:
for(int i = 0; i < zeilen; i++) {
    matrix.add(new LinkedList<>());
}
 
Und dann musst du jeder Zeile die Zahlen hinzufügen, also eine verschachtelte for-Schleife.
Stimmt 🙂

Dazu wäre es günstiger, die Spaltenliste zunächst zu erzeugen, danach mit den Werten zu füllen und erst anschließend in die Zeilenliste einzufügen.
Java:
List<Integer> columns = new LinkedList<>();
// columns mit Werten füllen
matrix.add(columns);
 

Neue Themen


Zurück
Oben