Zeile in 2d Array löschen

AkiJou

Neues Mitglied
Die Aufgabe ist
eine Methode Implementieren "void removeEntry(int[][] workArray, int col)"
Diese Methode entfernt aus jeder Zeile von workArray das Element mit dem Spaltenindex
col. Dadurch wird die Länge der entsprechenden Zeile um 1 kleiner. Ist an einem Spaltenindex
kein Element vorhanden, soll die Zeile nicht verändert werden. Dafür wird das Array
workArray umgebaut und kein neues Array erstellt. Sie dürfen aber innerhalb der Methode
ein temporäres Hilfs-Array anlegen.

Java:
private static void removeEntry(int[][] workArray, int col) {
    int row = workArray.length;
    //länge von größte Reihe berechnen
    int max = 0;
    int tempNum = 0;
    for (int[] ints : workArray) {
        tempNum = 0;
        for (int j = 0; j < ints.length; j++) {
            tempNum++;
            if (tempNum > max) {
                max = tempNum;
            }
        }
    }
    //neues Array wird um 1 Spalte kleiner
    int [][] newArray = new int[row][max];
    for(int i = 0; i < row; i++) {
        for(int j = 0; j < max; j++) {
            if(j < col && j < workArray[I].length) {
                newArray[I][j] = workArray[I][j];
            }else if (j == col) {
                // Do nothing
            } else if (j > col && j < workArray[I].length) {
                newArray[I][j - 1] = workArray[I][j];
            }
        }
    }
    for (int i = 0; i < workArray.length; i++) {
        for (int j = 0; j < workArray[I].length; j++) {
            workArray[I][j] = newArray[I][j];
        }
    }
    int remIndex = 0;
    for (int i = 0; i < workArray.length; i++) {
        for (int j = remIndex; j < workArray[I].length-1; j++) {
            if(workArray[I][j] == remIndex){
                workArray[I][j] = workArray[I][j + 1];
            }
       }
    }
Einzige was kann ich nicht schaffen ist 0 weglassen die bei manchen rauskommt
 

Anhänge

  • Screenshot 2022-05-29 130252.jpg
    Screenshot 2022-05-29 130252.jpg
    11,1 KB · Aufrufe: 1

Neumi5694

Top Contributor
Ist es denn eine Voraussetzung, dass keine Nullen stehen dürfen?
Wenn du eine Spalte einer Zeile löschen willst, dann brauchst du zuerst mal ein Array, das um 1 kürzer ist.
In dieses fügst du zunächst alle Spalten BIS zur zu löschenden ein, danach alle Felder NACH dem zu löschenden, hier muss der Zielindex um 1 kleiner sein.
Dann fügst die gesamte neue Zeile als Ganzes ins ursprüngliche Array ein (2D-Arrays gibt's nicht, was du da hast, ist ein Array von Zeilen, die wiederum als Array dargestellt sind).

Du brauchst also eine Schleife, die alle Zeilenindizes durchgeht.
In jedem Schritt brauchst du
a) ein neues Array der Länge lineLength-1
b) 2 Schleifen, mal mit Index von 0 ... (columnToDelete-1) und mal von (columnToDelete+1) ... (lineLength-1) zum Übertragen der Werte.
c) eine Zuweisung.

Mach dir also erst mal Gedanken darüber, wieso in deinem Code so viele Schleifen zu finden sind.
In deinem Titel steht 'Zeile löschen' ... im Aufgabentext geht es aber um Spalten. Vielleicht beruht das Missverständnis hierrauf?

Man kann pro Zeile sogar noch eleganter arbeiten, indem man die System.arrayCopy Methode verwendet anstatt der beiden Schleifen. Aber ich denke, Sinn der Aufgabe ist, dass ihr mit Indizes zu arbeiten lernt, also lass die mal außen vor.

Tip: Prüfe als erstes, ob lineLength > 0 ist, ansonsten brauchst du gar nichts zu machen,
 

AkiJou

Neues Mitglied
Ist es denn eine Voraussetzung, dass keine Nullen stehen dürfen?
Wenn du eine Spalte einer Zeile löschen willst, dann brauchst du zuerst mal ein Array, das um 1 kürzer ist.
In dieses fügst du zunächst alle Spalten BIS zur zu löschenden ein, danach alle Felder NACH dem zu löschenden, hier muss der Zielindex um 1 kleiner sein.
Dann fügst die gesamte neue Zeile als Ganzes ins ursprüngliche Array ein (2D-Arrays gibt's nicht, was du da hast, ist ein Array von Zeilen, die wiederum als Array dargestellt sind).

Du brauchst also eine Schleife, die alle Zeilenindizes durchgeht.
In jedem Schritt brauchst du
a) ein neues Array der Länge lineLength-1
b) 2 Schleifen, mal mit Index von 0 ... (columnToDelete-1) und mal von (columnToDelete+1) ... (lineLength-1) zum Übertragen der Werte.
c) eine Zuweisung.

Mach dir also erst mal Gedanken darüber, wieso in deinem Code so viele Schleifen zu finden sind.
In deinem Titel steht 'Zeile löschen' ... im Aufgabentext geht es aber um Spalten. Vielleicht beruht das Missverständnis hierrauf?

Man kann pro Zeile sogar noch eleganter arbeiten, indem man die System.arrayCopy Methode verwendet anstatt der beiden Schleifen. Aber ich denke, Sinn der Aufgabe ist, dass ihr mit Indizes zu arbeiten lernt, also lass die mal außen vor.

Tip: Prüfe als erstes, ob lineLength > 0 ist, ansonsten brauchst du gar nichts zu machen,
Ja stimmt Spalte, hab mich verschrieben.
Danke für den tipp!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
LilliCherry Array in einer Zeile ausgeben Java Basics - Anfänger-Themen 6
C Datentypen Zeile aus mehrdimensionalem Array extrahieren uns abspeichern Java Basics - Anfänger-Themen 6
K Erste Schritte Array mit 3 werte in eine Zeile -- Hilfe! Java Basics - Anfänger-Themen 2
J 2D Array - Zeile+Spalte Streichen Java Basics - Anfänger-Themen 2
Nadja 2-Dim Array mit einer Zeile int und einer double Java Basics - Anfänger-Themen 4
D Array über die Kommando zeile eingeben Java Basics - Anfänger-Themen 5
Glühlampe Usereingabe in der gleichen Zeile ausgeben Java Basics - Anfänger-Themen 6
padde479 Zeile entfernen TableModel Java Basics - Anfänger-Themen 11
F Arraylist<String>Ein Wort pro Zeile Java Basics - Anfänger-Themen 6
G Compiler-Fehler Fehler in Zeile 1 beheben, wie? Java Basics - Anfänger-Themen 9
I Wortkette in umgekehrter Rheinfolge + in neuer Zeile ausgeben Java Basics - Anfänger-Themen 4
W String einer Textdatei in einzelne Stringobjekte pro Zeile aufteilen Java Basics - Anfänger-Themen 14
M Spezifischen Wert einer Zeile aus .txt Datei entnehmen Java Basics - Anfänger-Themen 15
S Variablen Letzte Zeile eines Strings entfernen Java Basics - Anfänger-Themen 1
LFB In einer For-Schleife alles in einer Zeile ausgeben Java Basics - Anfänger-Themen 14
javapingu Jeglichen Inhalt einer Textdatei nach Zeile n löschen Java Basics - Anfänger-Themen 8
S Zufällige ungerade Zeile aus Text-Datei lesen Java Basics - Anfänger-Themen 5
G JTable, Zeile auswählen und Ergebnis an Schaltfläche übergeben Java Basics - Anfänger-Themen 4
Zwanglos Warum wird nur die erste Zeile im while Block ausgeführt? Java Basics - Anfänger-Themen 8
dieter000 Wie schreibe ich diese ZEile um? Java Basics - Anfänger-Themen 1
crrnogorka Letzte Zeile einer Tabelle "überschreibt" alle anderen Zeilen Java Basics - Anfänger-Themen 1
M In gleicher zeile hinter ausgabe noch etwas ausgeben Java Basics - Anfänger-Themen 1
P Welche Zeile in Tadople gibt einen compiler error? Java Basics - Anfänger-Themen 5
I ArrayList erstellen innerhalb einer Zeile? Java Basics - Anfänger-Themen 3
S Datenbank Tabelle eine Zeile an einer bestimmten Stelle einfügen Java Basics - Anfänger-Themen 2
S Gesamten String in einer Zeile ausgeben Java Basics - Anfänger-Themen 2
J ObjectOutputStream writeChars, komische Zeichen nur in 1. Zeile Java Basics - Anfänger-Themen 2
T Was macht diese Zeile? Java Basics - Anfänger-Themen 9
A Jede x-te Zeile, lösche 10 Zeilen Java Basics - Anfänger-Themen 9
L Tiefe Kopie einer Zeile eines zweidimensionalen Arrays Java Basics - Anfänger-Themen 1
B Code Zeile unklar Java Basics - Anfänger-Themen 9
ruutaiokwu Ausgegebene Zeile ersetzen mit neuem Text Java Basics - Anfänger-Themen 3
F Zeile in Ordner Java Basics - Anfänger-Themen 4
jaleda100 JTextArea Zeile einfügen Java Basics - Anfänger-Themen 1
M BufferedReader neue Zeile nach Knopfdruck Java Basics - Anfänger-Themen 9
F Mehrere Zeilen zu einer Zeile zusammenfügen und in eine Datei schreiben Java Basics - Anfänger-Themen 1
MaximilianTM Input/Output Einlesen und bearbeiten einer text Datei / Zeile Java Basics - Anfänger-Themen 5
C Java liest nur eine Zeile ein Java Basics - Anfänger-Themen 3
M Aus Datei auslesen und untersuchen ob diese Zeile schon vorhanden ist Java Basics - Anfänger-Themen 3
B Wieso wird die Zeile "column" genannt und die Spalte "line"? Java Basics - Anfänger-Themen 12
S BufferedReader nächste Zeile lesen Java Basics - Anfänger-Themen 4
M Zeile in datei überschreiben Java Basics - Anfänger-Themen 5
S drawString() neue Zeile Java Basics - Anfänger-Themen 4
D Falsche Zeile wird in JTable gelöscht Java Basics - Anfänger-Themen 6
D JTable Zeile wird nicht in MySQL gelöscht Java Basics - Anfänger-Themen 16
J Durchschnitt jeder Zeile und und Spalte in einem 2D Arrays berechnen Java Basics - Anfänger-Themen 6
W String in einer Zeile mit Alphabet füllen? Java Basics - Anfänger-Themen 8
snipesss [Java] Schriftart und Schriftgröße von JLabel in einer Zeile festlegen? Java Basics - Anfänger-Themen 3
H Variablen Zeile aus einem ResultSet ausleesen Java Basics - Anfänger-Themen 7
E Wenn i (for-Loop) bestimmter Wert, dann neue Zeile eines Buttons Java Basics - Anfänger-Themen 7
R Ab einer bestimmten Zeile lesen Java Basics - Anfänger-Themen 3
T Zeilen des ListArray nach einem Wort durchsuchen und diese Zeile ausgeben Java Basics - Anfänger-Themen 4
B FileInputStream entpacken und Zeile für Zeile entpacken Java Basics - Anfänger-Themen 1
Crazynet jTable erste Zeile mit deffinierten Werten Java Basics - Anfänger-Themen 0
S Zeile entfernen aus JTable Java Basics - Anfänger-Themen 15
S In JTable Zeile selektieren mit Mausklick Java Basics - Anfänger-Themen 16
D Datenbankzugriff - Leere Zeile einfügen Java Basics - Anfänger-Themen 2
G zeichen einer Zeile löschen Java Basics - Anfänger-Themen 4
F Zeile bei JTable hinzufügen Java Basics - Anfänger-Themen 6
A CSV datei eine Bestimmte Zeile ansprechen Java Basics - Anfänger-Themen 1
J Input/Output Zeile in Textdatei ändern Java Basics - Anfänger-Themen 14
S Java CSV, er nimmt die nächste Zeile nicht Java Basics - Anfänger-Themen 2
A Heap Space Error bei rekursiver Suche in Dateien trotz nur einer Zeile im Speicher Java Basics - Anfänger-Themen 26
G Zeile charweise lesen Java Basics - Anfänger-Themen 3
Ananaskirsche Input/Output Bestimmte Zeile aus Datei einlesen Java Basics - Anfänger-Themen 4
G Leere Zeile lesen Java Basics - Anfänger-Themen 12
G zeile: Was bedeutet das in der Methode? Java Basics - Anfänger-Themen 4
S Farbe eine Zeile in JTable ändern, wenn JButton geklickt wurd Java Basics - Anfänger-Themen 4
T Textdatei Zeile löschen? Java Basics - Anfänger-Themen 4
C Input/Output Hilfe..txt Datei zeile verändern und Ausgabe ..Hilfe Java Basics - Anfänger-Themen 11
N Bestimmte Zeile aus einer Datei auslesen Java Basics - Anfänger-Themen 10
L Ansprechung der x'ten Zeile in Arrays Java Basics - Anfänger-Themen 10
S Textdatei lesen, Methode gibt nur die letzte Zeile aus. Warum? Java Basics - Anfänger-Themen 5
G JTable: Inhalt einer selektierten Zeile speichern Java Basics - Anfänger-Themen 2
J Neue Zeile an bestimmter Stelle in Textdatei einfügen Java Basics - Anfänger-Themen 2
N Erste Zeile bei BufferedReader doppelt lesen? Java Basics - Anfänger-Themen 2
I .txt Datei Zeile löschen. Java Basics - Anfänger-Themen 13
B Geschwindigkeitsabhängigkeit von Anz. d. Operatoren pro Zeile Java Basics - Anfänger-Themen 12
D Bestimmte Zeile aus TXT Datei ausgeben Java Basics - Anfänger-Themen 4
H Input/Output JTextArea einzelne Zeile auslesen Java Basics - Anfänger-Themen 6
Rayo Lese Zahl in Zeile x aus Spalte y ein! Java Basics - Anfänger-Themen 36
T Erste Schritte Ende von Wörtern in einer Zeile feststellen? Java Basics - Anfänger-Themen 5
N User Eingabe mit Zeile aus TextFile vergleichen Java Basics - Anfänger-Themen 13
L warum werden nicht die neuen Point Daten der Zeile 25 beim ausprinten Zeile 28 übernommen ? Java Basics - Anfänger-Themen 8
Kenan89 Bestimmte Zeile in txt-Datei ersetzen Java Basics - Anfänger-Themen 4
G Bitte um Erklärung dieser einer Zeile Java Basics - Anfänger-Themen 5
D Input/Output bestimmte Zeile auslesen Java Basics - Anfänger-Themen 3
G Ausgabe nach 5 Zeichen in neue Zeile schreiben??? Java Basics - Anfänger-Themen 12
H Zeile aus Textdatei lesen und in Textfield schreiben Java Basics - Anfänger-Themen 4
B Erste Schritte Kosolennanwenung nur eine Zeile Java Basics - Anfänger-Themen 9
W letzte Zeile aus wachsender Textdatei auslesen Java Basics - Anfänger-Themen 5
S Itext und eine neue Zeile einfügen Java Basics - Anfänger-Themen 2
B Aus Text Zeile einen String herauslesen Java Basics - Anfänger-Themen 11
W Eingabe und Ausgabe in eine Zeile Java Basics - Anfänger-Themen 4
Corben Input/Output FileOutputStream - neue Zeile mit write(10) Java Basics - Anfänger-Themen 6
G Was bedeutet diese Zeile? Java Basics - Anfänger-Themen 2
E Zeile innerhalb Datei überschreiben Java Basics - Anfänger-Themen 2
P Kann Ziffer die am Ende einer Zeile steht (.txt) nicht in int übersetzen Java Basics - Anfänger-Themen 11
F In der Zeile des Ausführers bleiben? Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben