Index of Array erweiteren

Marco_D

Mitglied
Ich soll eine Methode schreiben mit einem int als Parameter der dann um genau diesen Wert das Array erweitern soll. Nur man kann ja vom einem Array nicht die Länge ändern wenn man die einmal festgelegt hat. Ich kann zwar ein neues erstellen mit den gleichen Werten und das dann um diesen Parameter erweitern nur hab ich dann das Problem dass ich nicht das ursprüngliche Array geändert habe sondern einfach nur ein neues erstellt habe und da die Methode void sein muss kann ich da auch nicht einfach das neu erstellte Array returnen. Klar könnte ich das Problem mit einer ArrayList umgehen dies soll jedoch nicht getan werden.
 

httpdigest

Top Contributor
Ich soll eine Methode schreiben mit einem int als Parameter der dann um genau diesen Wert das Array erweitern soll.
Was denn für ein Array? Du verweist hier auf ein Array, sagst aber nicht, wo das referenziert wird, bzw. woher die Methode das Array überhaupt kennt. Laut deinen Angaben bekommt die Methode lediglich einen int Parameter. Ist das Array eine Instanzvariable einer Klasse? Dann kannst du das ja auf ein neues Array setzen (wenn es nicht final ist).
 

Marco_D

Mitglied
Was denn für ein Array? Du verweist hier auf ein Array, sagst aber nicht, wo das referenziert wird, bzw. woher die Methode das Array überhaupt kennt. Laut deinen Angaben bekommt die Methode lediglich einen int Parameter. Ist das Array eine Instanzvariable einer Klasse? Dann kannst du das ja auf ein neues Array setzen (wenn es nicht final ist).
Es handelt sich um ein private char[] arr das erstmal nur deklariert wurde im selben package. Außerdem kann man mithilfe einer anderen Methode ein neues array erstellen:
Java:
package mystring;

public class MyString {

    private char[] arr;

    public MyString(int length) {
        arr = new char[length];
    }

    public int getLength() {
        return arr.length;
    }
 
Zuletzt bearbeitet:

temi

Top Contributor
Ja aber gehen wir mal davon aus ich erstelle ein array mit Hilfe der Methode MyString. Wie genau kann ich jetzt die Methode implementieren die die Länge erweitert.

Also wie genau ?

Na so, wie du es schon ganz oben beschrieben hast. Erstelle ein neues Array, kopiere die Werte aus dem Alten und weise das neue "arr" zu.
 

Marco_D

Mitglied
Nun implementieren Sie die eigentliche Methode, die wir zum Erweitern der Länge unseres Stringsbenutzenwollen.SchreibenSieeineMethodepublic void increaseLength(int n). Diese bekommt die Anzahl an Characters überbergeben, um die die Länge des Strings erweitert werden soll. Hat der String die Länge 40, so soll er nach dem Aufruf von
increaseLength(5), die Länge 45 haben. Er wird also um 5 Characters erweitert.

Das ist die Aufgabe. Aber die wird doch nicht eingehalten, wenn ich das so mache, wie ich beschrieben habe
 

temi

Top Contributor
Das ist die Aufgabe. Aber die wird doch nicht eingehalten, wenn ich das so mache, wie ich beschrieben habe
Warum nicht?

"Der String" ist ja deine Klasse MyString. Intern werden die einzelnen Zeichen durch ein Chararray verwaltet. Das bleibt alles so wie es vorher schon war. Du benötigst in der Methode ein temporäres Array (das um "n" länger ist als "arr") in welches du die bereits in "arr" enthaltenen Zeichen kopierst. Danach kann "arr" durch das temporäre Array ersetzt werden. Wie das geht, steht weiter oben.
 

Marco_D

Mitglied
Naja gut aber eine andere Aufgabe ist es z.B eine Methode zu schreiben die dann alle Arrays einzeln ausprintet, was ja an sich kein Problem ist, nur hat man ja das Problem dass man dann nicht weiß ob ich jetzt in der Methode arr[] printen soll oder copyarr[]?!
 

temi

Top Contributor
Naja gut aber eine andere Aufgabe ist es z.B eine Methode zu schreiben die dann alle Arrays einzeln ausprintet, was ja an sich kein Problem ist, nur hat man ja das Problem dass man dann nicht weiß ob ich jetzt in der Methode arr[] printen soll oder copyarr[]?!

Du hast es offensichtlich nicht verstanden. Schade.

In deiner noch nicht implementierten Methode print() stellt sich diese Frage überhaupt nicht, weil es nur ein Array gibt, auf das die Methode Zugriff hat und das ist die Instanzvariable "arr".

Anstatt hier immer neue (scheinbare) Probleme aufzuwerfen: Setz doch die Tipps von oben einfach erst mal um. Falls du dann zu der Methode increaseLength() noch Fragen hast, dann melde dich wieder. Dir kann sicher geholfen werden.
 
Zuletzt bearbeitet:

Marco_D

Mitglied
Bereits umgesetzt nur blicke ich da noch nicht ganz durch. Beispiel: Ich erstelle mir ein Array mithilfe der Methode MyString() und weisen dem dann daraufhin Werte zu. Anschließend rufe ich die Methode increaseLength() auf. Dann wird ja ein neues Array erstellt der genau die gleichen Werte hat nur noch weitere Indiziez mit Wert 0. Wenn ich jetzt die Methode print() aufrufe dann weiß diese Methode nicht welchen Array er printen soll. print() hat keinen formalen Parameter und ist public void.
 

temi

Top Contributor
Bereits umgesetzt nur blicke ich da noch nicht ganz durch. Beispiel: Ich erstelle mir ein Array mithilfe der Methode MyString() und weisen dem dann daraufhin Werte zu. Anschließend rufe ich die Methode increaseLength() auf. Dann wird ja ein neues Array erstellt der genau die gleichen Werte hat nur noch weitere Indiziez mit Wert 0. Wenn ich jetzt die Methode print() aufrufe dann weiß diese Methode nicht welchen Array er printen soll. print() hat keinen formalen Parameter und ist public void.

Java:
class Foo {
    
    String greet;
    
    public Foo() {
        greet = "He du!";
    }
    
    public void changeGreet(String greet) {
        this.greet = greet;
    }
    
    public void print() {
        System.out.println(this.greet); // Hier gibt es keine Wahl. Es gibt nur "greet"!
    }
}
 

Marco_D

Mitglied
Java:
class Foo {
   
    String greet;
   
    public Foo() {
        greet = "He du!";
    }
   
    public void changeGreet(String greet) {
        this.greet = greet;
    }
   
    public void print() {
        System.out.println(this.greet); // Hier gibt es keine Wahl. Es gibt nur "greet"!
    }
}

JA genau und jetzt nehmen wir mal an du erstellst eine Methode die ein ganz neuen String erstellt. Aus greet wird String greet wird String greetCopy gemacht. Jetzt kann man doch nicht genau diese von dir implementierten Methoden aufrufen und "hoffen" dass es ein Einfluss auf greetCopy hat. Genau das ist ja das was ich meine. Dadurch dass ich eine Methode geschrieben habe, die die Länge des Arrays erweitert musste ich ja ein komplett neues erstellen und jetzt kann ich ja nicht die davor implementierten Methoden aufrufen und beten, dass diese das neu erstellte Array beeinträchtigen.
 

temi

Top Contributor
jetzt nehmen wir mal an du erstellst eine Methode die ein ganz neuen String erstellt.
Java:
class Foo {

    String greet;

    public Foo() {
        greet = "He du!";
    }

    public void changeGreet() {
        this.greet = "Willkommen!"; // Hier ganz "neuer" String.
    }

    public void print() {
        System.out.println(this.greet); // Hier gibt es keine Wahl. Es gibt nur "greet"!
    }
}

Du erstellst zwar ein neues Array, aber du weist die Referenz auf dieses neue Array der Instanzvariablen "arr" zu. Die Referenz auf das ursprüngliche Array geht dabei verloren (daher vorher kopieren!) und arr "zeigt" jetzt auf das neue Array.

Für alle anderen Methoden, die auf "arr" zugreifen ändert sich nichts. Sie greifen dadurch ebenfalls auf das neue Array zu.
 

Marco_D

Mitglied
Java:
class Foo {
 
    String greet;
 
    public Foo() {
        greet = "He du!";
    }
 
    public void changeGreet() {
        this.greet = "Willkommen!"; // Hier ganz "neuer" String.
    }
 
    public void print() {
        System.out.println(this.greet); // Hier gibt es keine Wahl. Es gibt nur "greet"!
    }
}

Nein eben nicht. Du hast den selben String überschrieben. Es ist kein anderer String. Der String bleibt der gleiche, das was du änderst ist der Inhalt. Ich aber kann das Array nicht ändern weil man die Indizies eines Arrays nicht erweitern kann. Außer man erstellt ein neues Array und fügt dem neuen Array (der dann auch einen neuen Namen haben muss) die selben Werte hinzu und lässt die restlichen Indizies leer.
 

temi

Top Contributor
Du erstellst zwar ein neues Array, aber du weist die Referenz auf dieses neue Array der Instanzvariablen "arr" zu. Die Referenz auf das ursprüngliche Array geht dabei verloren (daher vorher kopieren!) und arr "zeigt" jetzt auf das neue Array.

Für alle anderen Methoden, die auf "arr" zugreifen ändert sich nichts. Sie greifen dadurch ebenfalls auf das neue Array zu.
 

Marco_D

Mitglied
Java:
    public void increaseLength(int n)  {
            char[] arrcopy = new char[arr.length + n];
            for(int i = 0; i < arr.length; i++) {
                arrcopy[i] = arr[i];
            }
    }



 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
Ostkreuz Zweidimensionaler Array Index Java Basics - Anfänger-Themen 2
T String Array Fehler beim Index Java Basics - Anfänger-Themen 3
M Ersten Index von Array bestimmen Java Basics - Anfänger-Themen 14
M Wie kann eine Methode für ein vorhandenes "Array von char" einen Index-Wert zurückliefern? Java Basics - Anfänger-Themen 3
G Methoden Methode die aus einem Array ein Index ausgibt? Java Basics - Anfänger-Themen 2
L gerader Index im Array Java Basics - Anfänger-Themen 8
Z Array-Index einmalig je mit Random füllen Java Basics - Anfänger-Themen 7
M Kleinsten Index in Array finden Java Basics - Anfänger-Themen 6
E Arrayeintrag nach Index löschen und Array kürzen Java Basics - Anfänger-Themen 3
S Array - index von Benutzer eingegebenen char ausgeben Java Basics - Anfänger-Themen 3
MiMa Array mit ungültigen Index ansprechen Java Basics - Anfänger-Themen 2
F Fehler bei Array und Index Programmierung Java Basics - Anfänger-Themen 18
T Erste Schritte Java ein Array Feld[index] zurueckgeben? Java Basics - Anfänger-Themen 20
E Array bei Index ändern Java Basics - Anfänger-Themen 14
A dynamisches Array - Index Liste Java Basics - Anfänger-Themen 2
X Array Index Out of Bounds Java Basics - Anfänger-Themen 39
S Array bei index halbe umdrehen ohne hilfsfeld Java Basics - Anfänger-Themen 13
B Array mit Index 1 starten lassen Java Basics - Anfänger-Themen 5
P Array index per char suche auslesen Java Basics - Anfänger-Themen 3
J Array-Index nur als Integer möglich? Java Basics - Anfänger-Themen 15
H RemoteSocketAddress als Index von einem Array Java Basics - Anfänger-Themen 10
J Array - Index ermitteln per Wert Java Basics - Anfänger-Themen 3
E Array Index out of Bound Java Basics - Anfänger-Themen 5
E array index an methode übergeben? Java Basics - Anfänger-Themen 6
Mugetsu35 ArrayList Update ohne Index Java Basics - Anfänger-Themen 6
_so_far_away_ Fehlermeldung "Index 2 out of bounds for length 2" Java Basics - Anfänger-Themen 7
sserio Liste erstellt und ein Problem mit dem Index Java Basics - Anfänger-Themen 8
P9cman Char Index rekursiv finden Java Basics - Anfänger-Themen 4
H Java verkettete Liste, Wert eines Index zurückgeben Java Basics - Anfänger-Themen 1
M Wie kann ich den Index i von einer LinkedList überprüfen? Java Basics - Anfänger-Themen 36
T Algorithmus für Index mit min-Wert Java Basics - Anfänger-Themen 2
H For-Schleife bis Index von Eingabe laufen lassen Java Basics - Anfänger-Themen 24
Y Knoten an einem gegebenen Index aus einer Liste entfernen. Java Basics - Anfänger-Themen 6
Baktash Index 0 out of bounds for length 0 Java Basics - Anfänger-Themen 5
Lena_2611 Vergleich von Array1 Index mit Array2 Wert und erzeugen eines neues Arrays Java Basics - Anfänger-Themen 8
JD_1998 Vektorrechner; User Input -> Index out of bounds Java Basics - Anfänger-Themen 3
H Bei forEach Index des Elements ermitteln Java Basics - Anfänger-Themen 17
G Scanner nutzen und Index auslesen Java Basics - Anfänger-Themen 8
S String index out of range Java Basics - Anfänger-Themen 11
R Zugriff auf den Index eines Arrays, welches ein Objekt ist. Java Basics - Anfänger-Themen 4
J Apache Poi - createCell() Methode akzeptiert keinen Index aus for-schleife als Parameter Java Basics - Anfänger-Themen 4
J Fehler in Programm: Index -1 out of bounds for length 0 Java Basics - Anfänger-Themen 5
R String index out of range: -1 beim Datei Parsen Java Basics - Anfänger-Themen 15
A ArrayList - size() nur nach bestimmtem index anzeigen lassen Java Basics - Anfänger-Themen 13
P String index out of range Java Basics - Anfänger-Themen 12
F Arrays Sätze speichern und einzelne Worte mit Index Angabe auslesen Java Basics - Anfänger-Themen 4
M Index out of range Java Basics - Anfänger-Themen 10
I String index out of range Fehlermeldung Java Basics - Anfänger-Themen 4
D " Column Index out of range, 6 > 5." Java Basics - Anfänger-Themen 8
S Index File bauen Java Basics - Anfänger-Themen 5
Hacer remove at index Java Basics - Anfänger-Themen 31
S kleinster Index der größten Komponente ? Java Basics - Anfänger-Themen 3
K Element in ArrayList löschen ohne Index zu verschieben Java Basics - Anfänger-Themen 2
Z Erste Schritte String index out of range Java Basics - Anfänger-Themen 2
F Freier Index im Stringarray Java Basics - Anfänger-Themen 3
V Attribut aus aus jedem ArrayListen index auf Bildschirm ausgeben Java Basics - Anfänger-Themen 9
B Index out of bound exception. Warum? Java Basics - Anfänger-Themen 3
S string index out of range - es ergibt keinen Sinn Java Basics - Anfänger-Themen 6
Ö Frage zu String index out of range: -1 Java Basics - Anfänger-Themen 12
T Index-Abfrage von Pi Java Basics - Anfänger-Themen 5
X LinkedList - Index eines Objekts Java Basics - Anfänger-Themen 2
S Substring - String index out of range Java Basics - Anfänger-Themen 11
U buttonarray[this] anstatt buttonarray[index] ? Java Basics - Anfänger-Themen 12
D Annonyme Innere Klasse: Listen mit geradem Index ausgeben Java Basics - Anfänger-Themen 6
M Index einer JList ausgeben Java Basics - Anfänger-Themen 4
V Methoden Verkettete Listen Index eines Elementes ausgeben Java Basics - Anfänger-Themen 10
Luk10 Index bei 2 verschachtelten Schleifen Java Basics - Anfänger-Themen 2
C Klassen BubbleSort was passiert mit dem Index ? Java Basics - Anfänger-Themen 2
S String index out of range: 8 at java.lang.String.substring(Unknown Source) Java Basics - Anfänger-Themen 13
O Index Ermittlung Java Basics - Anfänger-Themen 20
C Felder(Größte Zahl, Index) Java Basics - Anfänger-Themen 6
M kurze frage: Ohne index.of position von string angeben Java Basics - Anfänger-Themen 16
G Collections Liste mit festem Index Java Basics - Anfänger-Themen 16
R ArrayList(int index, Object) funktioniert nicht korrekt? Java Basics - Anfänger-Themen 7
H "Index" eines Button ermitteln Java Basics - Anfänger-Themen 7
K Fehlermeldung: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1 Java Basics - Anfänger-Themen 4
H String index out of range: 0 Java Basics - Anfänger-Themen 4
M index.html fehlt Java Basics - Anfänger-Themen 12
I Letzter Index einer Liste Java Basics - Anfänger-Themen 8
StupidAttack Fehler: String index out of range:7 Java Basics - Anfänger-Themen 10
C Datentypen ArrayList.remove(index) hinterlässt leeres Feld Java Basics - Anfänger-Themen 5
A Datentypen Nächsten freien index eines arrays finden Java Basics - Anfänger-Themen 5
S Enum als Index Java Basics - Anfänger-Themen 5
M JList Index selektieren ausschalten. Java Basics - Anfänger-Themen 7
S Sortierte LinkedList nach Variablen durchsuchen und nicht nach INDEX Java Basics - Anfänger-Themen 6
S Fehlermeldung String index out of range?? Java Basics - Anfänger-Themen 3
J arraylist Index des größten, zweit-,dritt-,...-größten Elemtens ausgeben Java Basics - Anfänger-Themen 8
E Höherer Index als Size in ArrayList Java Basics - Anfänger-Themen 9
S Verschiedene Arrays über Index aufrufen Java Basics - Anfänger-Themen 5
M index of bei LinkedList Java Basics - Anfänger-Themen 6
DStrohma Index einer markierten Zeile aus einer JList bekommen? Java Basics - Anfänger-Themen 5
K itemlistener item index herausfinden Java Basics - Anfänger-Themen 4
G Char erzeugen wenn Index bekannt! Java Basics - Anfänger-Themen 2
H wie spreche ich durch leerzeichen im string neuen index an Java Basics - Anfänger-Themen 10
F Arrays sortieren -> Index merken Java Basics - Anfänger-Themen 10
J Speichern des index Java Basics - Anfänger-Themen 3
J Wie installiere ich die api index.html in meinen java editor Java Basics - Anfänger-Themen 4
J enum Index Zugriff Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben