Arrays Frage

N

Neuling19

Gast
Hallo Leute, wir haben gerade mit Arrays angefangen und ich hab mir dazu schon ein bisschen Theorie angeeignet, jedoch verstehe ich nicht was meine Lehrerin mit diesen Sätzen von mir will:

Definieren Sie zwei Konsturktoren für die Klasse Array. (das verstehe ich)

a) Der eine Konstruktor erhält als Argument die Länge des zu erstellenden Arrays und initialisiert alle Werte mit 0.

b) Der andere Konstruktor erhält über eine Parameterliste variabler Länge die Liste der Werte, mit denen das Array initialisiert werden soll.

Ich dachte für Arrays gibt es sowas wie Konstruktoren gar nicht...bin verwirrt.. dachte man macht das immer so

int [] Array = new int[10] // Array mit 10 int Werten die alle noch den Wert 0 darstellen (0 - 9)

int[0] = 10;
int[1] = 5; usw. // gibt den einzelnen Stellen einen Wert

oder man macht das gleich so

int [] array1 = {1,2,10,5,12,4}

Ist damit sowas in der Art gemeint?

Also für a) int [] number = int[20];
und für b) int [] number = {5,3,6,19,15,0,18,2,16,1,17,14,13,12,10,4,9,7,11,8 }

mfg
 
G

Gast2

Gast
Deine Aufgabe ist es wohl eine eigene Klasse Array zu schreiben.

Java:
public class Array {
    // Variablen, Konstruktoren, etc.
}

In dieser Klasse implementierst du dann 2 eigene Konstruktoren (wie in der Aufgabenstellung beschrieben)
 

Java.getSkill()

Aktives Mitglied
Java:
public class Array{

private int arraylength;

public Array(){}

public Array(int zahl){
arraylength=zahl;
}

int []xy=new int[arraylength];

}

vielleicht sowas für a)
 
N

Neuling19

Gast
Danke für eure Antworten

Ich hab das jetzt mal so gemacht, denn davor war noch eine Aufgabe, die hieß, man soll in dieser Klasse ein int [] - Array number von ganzen Zahlen implementieren

Hier mein Code

Java:
public class Array {

	private int [] number;
	
	public Array()
	{
		
	}
	 
	public Array(int[] number)
	{
		 this.number = number; 
	}

und das ist jetzt nur die Aufgabe a) oder wie?

Ich versteh dann nich was ich in b) machen soll ...hab das noch nie gemacht, ist das quasi dann

"Methode mit variabler Argumentanzahl (Vararg)" sowas?

Also

Java:
public Array( int... array ) 
{ 

}


Lieg ich damit in der richtigen Richtung?..
 
G

Gast2

Gast
Der erste Konstruktor entspricht nicht dem geforderten aus Aufgabenteil a).
Dort wird gesagt dass du nur die GRÖßE des Arrays übergeben sollst. Initialisiert wird das Array dann im Konstruktor erst.

Der zweite Konstruktor schaut aber gut aus ;)
 

eRaaaa

Top Contributor
Wäre es nicht sinniger das Array als Instanzvariable anzulegen anstelle der Größe?

Und mit
Code:
new int[zahl]
sind automatisch alle Werte mit 0 initialisiert (merkwürdige Aufgabenstellung aber auch ;/ )
 
N

Neuling19

Gast
So da bin ich wieder Leute! =)

Habe jetzt ein bisschen an meinem Programm weitergearbeitet und bin auf das nächste Problem gestoßen ..

Hier meine Klasse Array

Java:
package edu.hm.cs.swe2.minsort.array;

import java.util.*;

public class Array {

	private int arrayLength;

	// Default-Konstruktor
	public Array() {

	}

	// Konstruktor der alle Werte der ArrayListe mit 0 initialisiert
	public Array(int zahl) {
		
		arrayLength = zahl;
		int[] number = new int[arrayLength];

		for (int i = 0; i < number.length; i++) {
			number[i] = 0;
		}
	}
	
	
	// Variable-Length Argument List (varargs)
	public Array (int... number)
	{
		for (int input: number)
		{
			System.out.println(input);
		}
	}

	// Methode, welche die Werte im Array "number" aufsteigend sortiert
	public void sortArray() 
	{
		int [] number = new int [arrayLength];
		Arrays.sort(number);
		
		System.out.println(number);
	}
	
	// Methode, welche die Werte im Array "number" auf die Konsole ausgibt,
	// beginnend beim Wert mit dem Index 0
	public void printArray()
	{
		
		
	}
	
	// Methode, die zunächst das unsortiertte Array ausgibt und anschließend
	// eine Kopie des Arrays "number" über ein neues Objekt anlegt
	public void processArray()
	{
		int [] number = new int [arrayLength];
		int [] copy = new int [number.length];
		
		for (int i = 0; i < number.length; i ++)
		{
			copy[i] = number[i]; 
		}
		
		// Sortiert das Array "number" mit Hilfe der sortArray() Methode
		
		number.sortArray(); // Funktioniert nicht
		
		// Sortiert das Array "copy"
		Arrays.sort(copy);
		
	}
	
	
	
	// Getter/Setter-Methoden
	
	public void setArrayLength (int arrayLength)
	{
		this.arrayLength = arrayLength;
	}
	
	public int getArrayLength()
	{
		return arrayLength;
	}

}


Meine Bitte:

Könnt ihr euch den Quellcode kurz durchlesen und schauen, ob ihr irgendwo Fehler entdeckt?
Wäre nett (ist ein kurzes Programm bis jetzt)

Meine Frage:
Warum funktioniert das hier nicht

number.sortArray(); // Funktioniert nicht


Die Aufgabenstellung lautet:

Sortieren Sie sodann das ursprüngliche Array und geben Sie es aus. Verwenden Sie dazu die von Ihnen implementierten Methoden

Ich hab doch extra eine sortArray() Methode angelegt um das Array "number" zu sortieren...kann mir einer meinen Fehler erklären?

Dank dem, der Antwort gibt

mfg
 
S

SlaterB

Gast
number ist ein Objekt vom Typ int[], nicht vom Typ Array

die Klasse Array hat eine Methode sortArray(), die Klasse int[] nicht
 

srea

Bekanntes Mitglied
Weil du in [c]sortArray()[/c] immer ein neues [c]int[][/c] Array erstellst und nicht dein schon erstelltes und befülltes übergibst/sortierst.
Und in deinem Array ist jedes Element "0" oder hab mich verschaut?
 
Zuletzt bearbeitet:
N

Neuling19

Gast
ja aber das soll ja anfangs den Wert 0 haben

Aufgabenstellung:


a) Der eine Konstruktor erhält als Argument die Länge des zu erstellenden Arrays und initialisiert alle Werte mit 0.


"number ist ein Objekt vom Typ int[], nicht vom Typ Array"

das versteh ich nich

ich mein es geht bei der aufgabe schließlich um Arrays und die Aufgabenstellung besagt dass in der sortArray ein ArrayObjekt erstellt und sortiert werden soll

und Arrays erstellt man doch so :

int [] abc = new int[]{..}

Oder hab ich da was falsch verstanden?

mfg
 

srea

Bekanntes Mitglied
Ok, hatte die Aufgabe nicht gelesen, sorry :)

In deinem Code wird in jeder Methode ein eigenes [c]int[][/c] Array erstellt, mit welchem dann in der Methode weitergearbeitet wird. Ich denke es ist gemeint, das du ein [c]int[] number;[/c] als Instanzvariable deklarierst und diese dann in den Konstruktoren befüllst.

in deiner [c]processArray()[/c] Methode kannst du dann mit [c]this.sortArray();[/c] das Array sortieren. Ich geh mal davon aus, du erzeugst in einer anderen Klasse ein Objekt von Array.

Mag sein, dass ich grad ein wenig den Durchblick verloren hab aber das ist das was ich mir vorstellen könnte. Korrigiert mich gerne!
 
S

SlaterB

Gast
wenn du in einer Waschanlage die Methode wascheAutos() implementierst, kannst du trotzdem nicht auto.waschDich() aufrufen

du bist zwar bei allem durchaus im richtigen Thema, aber Details kann man nicht vernachlässigen,
wer wen wann wo warum aufruft und was genau tut,

sortArray() kann nach wie vor nur an einem Objekt der Array-Klasse aufgerufen werden,
in processArray() bist du eh in einem solchen Array 'drin', also ginge ein Aufruf

sortArray()
oder
this.sortArray()

diese Methode soll dann sicherlich ein int[] sortieren, aber doch nicht ein neues erstellen,
wozu ein neu erstelltes mit nur 0en drin sortieren?
das Array int[] number soll gewiss ein Klassenattribut sein, in processArray() gefüllt und in sortArray() dann sortiert
 
N

Neuling19

Gast
ach keine Ahnung was unsere Lehrerin damit meint, aber glaube sowas wird das schon sein @ SlaterB

Ich werd morgen mal nachfragen..

Danke für die Antworten
 
N

Neuling19

Gast
Sooo.. ich bins doch nochmal, hab bis jetzt am Programm rumprobiert, aber es kommt nur Müll raus :(

Ich poste hier nochmal meine 2 Klassen

Main

Java:
package edu.hm.cs.swe2.minsort;

import edu.hm.cs.swe2.minsort.array.Array;

public class Main {

	public static void main(String[] args) {
		
		Array array = new Array (5,3,6,19,15,0,18,2,16,1,17,14,13,12,10,4,9,7,11,8);
		
		array.processArray();
		
	}

}

Java:
package edu.hm.cs.swe2.minsort.array;

import java.util.*;

public class Array {

	private int arrayLength;
	private int[] number;
	
	// Default-Konstruktor
	public Array() {

	}

	// Konstruktor der alle Werte der ArrayListe mit 0 initialisiert
	public Array(int arrayLength) {
		
		this.arrayLength = arrayLength;
		number = new int[arrayLength];

		for (int i = 0; i < number.length; i++) {
			number[i] = 0;
		}
	}
	
	
	// Variable-Length Argument List (varargs)
	public Array (int... number)
	{
		for (int input: number)
		{
			System.out.print(input + " ");
		}
	}

	// Methode, welche die Werte im Array "number" aufsteigend sortiert
	public void sortArray() 
	{
		int[] number = {arrayLength};
		Arrays.sort(number);
		
		for(int sort: number)
			System.out.println(" " + sort);
		
	}
	
	// Methode, welche die Werte im Array "number" auf die Konsole ausgibt,
	// beginnend beim Wert mit dem Index 0
	public void printArray()
	{
		System.out.println("Hier beginnt die Verarbeitung eines neuen Arrays;");
		System.out.println("------------------------------------------------");
		System.out.println();
		System.out.println("Das ursprüngliche Array umfasst die folgenden Zahlen:");
		System.out.print(Arrays.toString(number) + " ");
		
	}
	
	// Methode, die zunächst das unsortiertte Array ausgibt und anschließend
	// eine Kopie des Arrays "number" über ein neues Objekt anlegt
	public void processArray()
	{
		int [] number = new int [arrayLength];
		int [] copy = new int [number.length];
		
		for (int i = 0; i < number.length; i ++)
		{
			copy[i] = number[i]; 
		}
		
		printArray();
		// Sortiert das Array "number" mit Hilfe der sortArray() Methode
		sortArray();
		
		// Sortiert das Array "copy"
		Arrays.sort(copy);
		
	}
	
	
	
	// Getter/Setter-Methoden
	
	public void setArrayLength (int arrayLength)
	{
		this.arrayLength = arrayLength;
	}
	
	public int getArrayLength()
	{
		return arrayLength;
	}

}

Auf der Konsole erscheint:
5 3 6 19 15 0 18 2 16 1 17 14 13 12 10 4 9 7 11 8 Hier beginnt die Verarbeitung eines neuen Arrays;
------------------------------------------------

Das ursprüngliche Array umfasst die folgenden Zahlen:
null 0


Rauskommen sollte allerdings:

Hier beginnt die Verarbeitung eines neuen Arrays;
------------------------------------------------

Das ursprüngliche Array umfasst die folgenden Zahlen:
5 3 6 19 15 0 18 2 16 1 17 14 13 12 10 4 9 7 11 8

und dann noch 2 mal die Zahlenliste sortiert (einmal die richtige Zahlenreihe und einmal die kopierte "copy")


Kann sein, dass immer noch Fehler drin sind die hier schon angesprochen wurden, aber ich weiß nicht wie ich das ausbessern soll kann

Kann mir irgendeiner von euch wenigstens bisschen was verbessern damit die Reihenfolge der Ausgabe wenigstens stimmt?

Ich weiß dass:

die Zahlenreihenfolge zuerst ausgedruckt wird weil ich in der Main-Klasse ein Array erzeuge und das dann über

Java:
 public Array (int... number)
ausgegeben wird


Aber warum kommt, wenn ich die printArray() Methode aufrufe als Wert "Null" raus..ich hab doch n Arrayobjekt erstellt ..oder läuft das über die falsche Variable?

und warum wird mein Zahlenstrahl, den ich ja in der sortArray() Methode sortiert habe nicht richtig ausgegeben in der processArray() Methode?

Kann sein dass ich zulang vorm PC sitze aber ich weiß nich mehr weiter... -.-


Hoffe auf Antwort

mfg
 
S

SlaterB

Gast
> Kann mir irgendeiner von euch wenigstens bisschen was verbessern damit die Reihenfolge der Ausgabe wenigstens stimmt?

entscheidend für die Ausgabe ist der Inhalt des Klassenattributs number (Zeile 9)

und was macht dein Konstruktor?
Java:
    public Array (int... number)
    {
        for (int input: number)
        {
            System.out.print(input + " ");
        }
    }
nichts außer die Zahlen auszugeben,

dass der Parameter wie das Klassenattribut heißt kann man als Entschuldigung heranziehen,
ist leider ein schwerer Fehler in Java in diesem Anfängerbereich,
aber nun gut, in diesem Fall schnell korrigiert

Java:
    public Array (int... vielInput)
    {
        for (int input: vielInput)
        {
            System.out.print(input + " ");
        }
    }
nun umso deutlicher: es passiert nix, ergo macht das Programm quasi nix
 
N

Neuling19

Gast
aber es passiert doch trotzdem nix, auch nachdem ich den Parameternamen umgeschrieben habe

bzw.
ja es mag sein dass es ein schwerer Fehler ist, aber ich hab von Arrays heute zum ersten mal gehört...muss mich da auch erstmal reinfinden ...
 
S

SlaterB

Gast
> aber es passiert doch trotzdem nix, auch nachdem ich den Parameternamen umgeschrieben habe

eben, das ist das Problem, und ich schreibe dir keine Lösung sondern schreibe dir dass bisher nichts passiert,


wenn du zu Hause in der Küche feststellst, dass die Einkaufstüte leer ist,
dann liegt das eben genau daran, dass du im Supermarkt nichts reingetan hast

gerne mag das verwirren, gerne kannst du dir Zeit nehmen, dich reinzufinden, aber erst dann solltest du anfangen Fragen zu stellen,
und am besten in sehr kurzen Programmen,
diese Array-Klasse mit 100 Zeilen kann einen natürlich verwirren, 2/3 davon wie processArray(), sortArray() sind vorerst vollkommen irrelevant, lösche die lieber vorerst,

auch das int[] ist überdimensioniert, arbeite lieber erstmal nur mit einem einzelnen int-Wert,
den im Konstruktor speichern und in einer anderen Methode ausgeben, das wär schon ein erster Erfolg
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Frage zu Arrays Java Basics - Anfänger-Themen 3
T Erste Schritte Frage zur Initialisierung eines Mehrdimensionalen Arrays Java Basics - Anfänger-Themen 3
H Frage bezüglich Arrays Java Basics - Anfänger-Themen 5
Shizmo Frage zu generischen Arrays Java Basics - Anfänger-Themen 3
L Frage zum Speicher bei Arrays Java Basics - Anfänger-Themen 7
T Kurze Frage zu Arrays Java Basics - Anfänger-Themen 4
G Kurze Frage zu Arrays Java Basics - Anfänger-Themen 3
G Long und Frage zum Speicherplatz eines Arrays Java Basics - Anfänger-Themen 7
M Frage zu arrays Java Basics - Anfänger-Themen 5
A OOP Generelle Frage zu Objekten in Arrays Java Basics - Anfänger-Themen 14
D Datentypen Frage zu Klassen und Arrays! Java Basics - Anfänger-Themen 6
X Frage zu Arrays Java Basics - Anfänger-Themen 2
ModellbahnerTT Kleine Frage zu doppelten Arrays Java Basics - Anfänger-Themen 3
M Frage zu Arrays Java Basics - Anfänger-Themen 8
E Verständnis frage zum return wert eines Arrays Java Basics - Anfänger-Themen 7
U Arrays allgemeine Frage Java Basics - Anfänger-Themen 3
B Arrays; Frage zur Ausgabe Java Basics - Anfänger-Themen 6
A kurze frage zu arrays und deren zuweisung Java Basics - Anfänger-Themen 11
G Frage zu Arrays Java Basics - Anfänger-Themen 4
P Frage zu Arrays Java Basics - Anfänger-Themen 5
G Frage zu mehrdimensionalen Arrays Java Basics - Anfänger-Themen 15
E Frage zu Umlauten ä, ü, ö, ß / Ausgeben eines Arrays Java Basics - Anfänger-Themen 14
G Frage zu Arrays Java Basics - Anfänger-Themen 6
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
R Liste und Arrays Java Basics - Anfänger-Themen 12
N mehrdimensionale arrays Java Basics - Anfänger-Themen 12
E Arrays in einer ArrayList miteinander vergleichen Java Basics - Anfänger-Themen 12
Kingdako Wie löse ich eine Mathematische Formel mit Arrays und Schleifen? Java Basics - Anfänger-Themen 32
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
S Hilfe bei Praktischen Aufgaben von Arrays Java Basics - Anfänger-Themen 39
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
J Mehrdimensionale Arrays Java Basics - Anfänger-Themen 2
pc pc pc pc pc letztes Element eines Arrays n Java Basics - Anfänger-Themen 3
M Arrays Java Basics - Anfänger-Themen 3
Ostkreuz Wert von Arrays summieren Java Basics - Anfänger-Themen 1
Ostkreuz Summieren von Arrays Java Basics - Anfänger-Themen 4
javaBoon86 Arrays 2 Dimension Werte ausgeben Java Basics - Anfänger-Themen 15
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
B bei 2 Arrays Anzahl gleicher Elemente vergleichen? Java Basics - Anfänger-Themen 49
JustAProgrammer Ein Dreieck mit Arrays erstellen Java Basics - Anfänger-Themen 2
TheSepp Nur Arrays ausgeben, die Werte zugewiesen haben. Java Basics - Anfänger-Themen 4
volcanos Addition -> List<Integer> mit Arrays.asList() versus List<Integer>ArrayList<>() Java Basics - Anfänger-Themen 14
ArrayList mit unbekannter Menge an Arrays die Arrays vergleichen Java Basics - Anfänger-Themen 9
D Arrays an replaceAll-Methode übergeben Java Basics - Anfänger-Themen 12
rosima26 Geordnete Arrays ausgeben Java Basics - Anfänger-Themen 31
D Inhalt eines Arrays ausgeben Java Basics - Anfänger-Themen 7
A Jedes zweite Element eines Arrays entfernen Java Basics - Anfänger-Themen 30
C Zwei Arrays addieren und ausgeben Java Basics - Anfänger-Themen 3
E Zinsrechnung mithilfe von Arrays Java Basics - Anfänger-Themen 12
LePetitChat1 Arrays - NullPointerException? Java Basics - Anfänger-Themen 14
H Arrays: Größten Zahlen Unterschied herausfinden Java Basics - Anfänger-Themen 20
H Arrays befüllen Java Basics - Anfänger-Themen 43
C60 Methoden Main-Methode erkennt meine Arrays nicht. Java Basics - Anfänger-Themen 7
D Arrays Java Basics - Anfänger-Themen 9
C Java Arrays - Ausgabe in Methode Java Basics - Anfänger-Themen 12
R While-Loop der die Einträge eines Arrays in umgekehrter Reihenfolge anzeigt Java Basics - Anfänger-Themen 3
N Arrays Java Basics - Anfänger-Themen 5
W n verschiedene Arrays zufällig ausgeben - mit der Random-Klasse? Java Basics - Anfänger-Themen 8
U zwei 2D arrays auf gleich sein überprüfen Java Basics - Anfänger-Themen 14
melaniemueller Lagerverwaltung erstellen - mehrdimensionale Arrays Java Basics - Anfänger-Themen 62
C initialisieren eines arrays richtiger Größe und mit geeignetem Datentyp Java Basics - Anfänger-Themen 26
Bademeister007 Elemente aus zwei verschiedenen Arrays miteinander vergleichen und gegeben falls entfernen Java Basics - Anfänger-Themen 14
A Arrays aufsummieren Java Basics - Anfänger-Themen 11
C Wie 2 Arrays zusammenfügen und sortieren? Java Basics - Anfänger-Themen 11
S Arrays aneinanderketten Java Basics - Anfänger-Themen 20
Sinan Arrays auflisten ohne Wiederholung Java Basics - Anfänger-Themen 28
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
R Werte und Reihenfolge in 2d Arrays vergleichen Java Basics - Anfänger-Themen 5
D Verschlüsslungsaufgabe / Arrays Java Basics - Anfänger-Themen 6
L Methode für Zweidimensionale Arrays Java Basics - Anfänger-Themen 4
L Methode zum invertieren eines Arrays Java Basics - Anfänger-Themen 7
S zweidimensionale char arrays Java Basics - Anfänger-Themen 14
J Methoden Mehrdimensionale Arrays übereinander legen Java Basics - Anfänger-Themen 5
D Verwirrung bei Streams aus primitiven Arrays Java Basics - Anfänger-Themen 2
P Arrays mit verschiedenen Längen miteinander dividieren. Java Basics - Anfänger-Themen 1
P Wie kann ich die Zahlen dieses Arrays dividieren? Java Basics - Anfänger-Themen 2
N 2D Arrays jedes xy vergleichen Java Basics - Anfänger-Themen 7
J Traveling Salesman Problem [Arrays] Java Basics - Anfänger-Themen 9
M Arrays mit mehreren Werten über JOptionPane initialisieren Java Basics - Anfänger-Themen 12
Kawastori Größe eines Arrays bestimmen Java Basics - Anfänger-Themen 13
Zeppi Arrays[i] Java Basics - Anfänger-Themen 7
Lena_2611 Vergleich von Array1 Index mit Array2 Wert und erzeugen eines neues Arrays Java Basics - Anfänger-Themen 8
J B-Sprache mit Arrays ausführen Java Basics - Anfänger-Themen 18
A Teilarrays eines 2D-Arrays sortieren Java Basics - Anfänger-Themen 4
C Arrays - deklarieren, initialisieren? Ist das ein Objekt? Java Basics - Anfänger-Themen 3
K Sudoku mit 2D Arrays Java Basics - Anfänger-Themen 19
T Vertikales Histogramm mit Arrays Java Basics - Anfänger-Themen 3
JD_1998 Arrays einlesen, zwischenspeichern und wieder ausgeben Java Basics - Anfänger-Themen 8
Z Kein überprüfen des gesamten Arrays möglich.(Viergewinnt Spiel) Java Basics - Anfänger-Themen 6
F Arrays: Mathematische Funktion Java Basics - Anfänger-Themen 19
mihe7 Von Datentypen und (mehrdimensionalen) Arrays Java Basics - Anfänger-Themen 4
A Teilen eines Arrays Java Basics - Anfänger-Themen 5
DorFey Sortieren eines mehrdimensionalen Arrays Java Basics - Anfänger-Themen 8
N Probleme beim printen von Arrays durch for Schleife Java Basics - Anfänger-Themen 3
L If und else bei 2 Dimensionalen Arrays Java Basics - Anfänger-Themen 8
1 Arrays Java Basics - Anfänger-Themen 7
M Rückgabe eines Arrays Java Basics - Anfänger-Themen 10
L Addition von Arrays über die Parameterliste Java Basics - Anfänger-Themen 11
Z Erste Schritte Indexe innerhalb eines Arrays zusammensählen Java Basics - Anfänger-Themen 14

Ähnliche Java Themen

Neue Themen


Oben