Java Array Basic

Hallo!

Ich muss eine Array Klasse mit ein paar Methoden schreiben und es happert ziemlich stark beim Code.
Hab natürlich schon selber versucht, es zu lösen, aber es kommen immer nur kryptische ZahlenBuchstaben - Kombinationen nach dem Erzeugen eines Random Arrays heraus. Auch die anderen Methoden scheinen nicht zu funktionieren...

Kann mir da wer weiterhelfen?

Ich poste mal die Aufgabenstellung und meinen Code:

(Auskommentierte Passagen, haben zu Problemen geführt)


Definieren Sie mit Hilfe einer Klasse einen abstrakten Datentyp IntArray,
der intern als Array von int-Werten implementiert ist, und neben den
Standardmethoden (Konstruktoren, toString, equals, clone, setXxx, getXxx, etc.)
auch jeweils eine Methode für die Bestimmung

a2) des groessten Wertes in a
b2) des zweitgroessten Wertes in a (ist definiert als der groesste Wert,
der kleiner als das Maximum ist)
c2) des Wertes, der am haeufigsten vorkommt

enthaelt.



1. Die Klasse Array2


Java:
import java.util.Random;


public class Array2 {

	int i = 0;
	int [] a;
	private Array b;
	
	
	public Array2(int i){
	
		int[] a = new int [i];
		Random generator = new Random();
		
		while (i < a.length){
			a [i] = generator.nextInt (100);
			i++;	
		}
	}
	
	public String toString (int [] a ){
		for (int i = 0; i < a.length; i++) {
			int Element = a [i];
			return "Element: " + Element;
		}
		return "Der derzeitig gespeicherte Array ist: ";
	}
	
	
	public boolean equals (int [] a, int [] b){
				int bo = 0;
				for (int i = 0; i < a.length; i++) {
				if (a [i] == b [i]) bo = 1; 
				} 
			return (bo==1);
		}
	
	
	public int[] clone (int [] a){
		int i = a.length;
		int [] b = new int [i];
		while (i < a.length){
			a[i]=b[i];
			i ++;
		}
		return b;
	}
	
		
	public void setArray (int[] c){
		 int [] a = c;
	}
	
/*	public int getArray (){
		if (a.length == 1) return a [0];
		for (int i = 0; i < a.length; i ++) {
			return a [i];
		}
	}
*/	
	
	public int max (int [] a){
		int i = 0;
		int max = 0;
		while (i < a.length){
			if (a[i] < a[i+1]) max = a[i+1];	
			if (a[i] > a [i+1]) max = a[i];
			if (a[i] == a[i+1]) max = a[i];
			i++;
		}
		return max;
	}
		
		public int max2 (int [] a){
			int i = 0;
			int max = 0;
			int max2 = 0;
			while (i < a.length){
				/*if (a [i + 1] > a [i]) max = a[i + 1];
				if (a[i] > a [i+1]) max = a[i];
				if (a[i] == a[i+1]) max = a[i];
				if (max > a [i+1] & a [i+1] > a [i]) max2 = a[i+1];*/
				if(a[i]>max2 && a[i]!=max) {a[i]=max2;}
				i++;
			}
			return max2; //return von zweitgroeßtem Wert;	/* 

			
	}
	
/*		public int most (int []a){
			int z = 0;
			for (int i = 0; i < a.length; i ++){
				if (a[i] == a [i+1]) z++; //benachbarte Elemente werden verglichen
				
				int l = 1;
				while (l < a.length){
					if (a [i] == a [l]) z++; // erstes wird mit allen Elementen verglichen
					l ++;
				}
				
				/*for (int i,l = 1; l < a.length;  l ++)
				if (a [i] == a [l]) z++; // erstes wird mit allen Elementen verglichen
			}
			return z;
		}*/
}


2. Das Testprogramm (wsl. komplett chaotisch, weil ich verschiedenste Wege ausprobiert habe)

Java:
public class Test {

	
	public static void main(String[] args) {
		int[] a = new int [5]; // Array mit 5 Elementen
		
		a [0] = 5;
		a [1] = 7;
		a [2] = 1;
		a [3] = 20;
		a [4] = 15;
		
		System.out.println (a[0]);
		System.out.println (a[1]);
		System.out.println (a[2]);
		System.out.println (a[3]);
		System.out.println (a[4]);
				
		Array2 d = new Array2 (10);
		System.out.println (d);
		
		int [] c = new int [7];
		System.out.println (c);
		
		int[] b = a.clone();
		System.out.println (b [3]);
		
		
		
//		int max = d.max(c);
		int max2 = d.max2(c);
		System.out.println (max2);
//		System.out.println (max);
		
	//	a.setArray (d);
		System.out.println (d);
		
	//	d.getArray ();
		System.out.println (a);
		
		
		a.toString ();
		System.out.println (a[2]);
		
		c.toString ();
		System.out.println (c);
		
		
	//	int z = d.most (c);
	//	System.out.println (z);
		
		
		d.equals (a, b);
		
	}

	
}


Wäre wirklich super wenn mir jemand helfen könnte, ich weiß echt nicht mehr was ich noch probieren soll und bin schon total verwirrt.

Danke schon im Vorhinein,

Tamara
 

fastjack

Top Contributor
* toString geht nicht, weil Du immer das erste Element zurückgibst und dann die Methode beendest (return ...)

* equals geht nicht, bo ist immer eins, wenn zwei Elemente gleich sind und kann sich nicht mehr ändern. Wenn Du einmal auf ungleiche Elemente stößt, kannst Du schon mit false beenden.

* clone geht nicht, weil du Elemente des vorhandenen Arrays mit denen des neuen (leeren) Arrays füllen willst und dann das neue leere Array b zurückgibst. Es wird schon Fehler bei der Zuweisung a=b hageln.

* max Das Maximum kannst Du viel leichter suchen. Mach eine Methodenvariable, die als maximum wirkt. Geh das Feld durch und vergleiche die Elemente mit diesem maximum. Ist das Element größer, setzt Du das maximum auf dieses Element. Am Ende gibst du das maximum zurück.

Mach für jeden Test eine eigene Methode. Ein return bricht die Methode ab, also aufpassen! Statt der nervenden while-Schleifen würde ich for-Schleifen nehmen.
 
Ok das mit dem Maximum hab ich verstanden, das geht wirklich so viel einfacher! Dankeschön =)

Aber bei der toString Methode muss ich das doch so machen, dass immer ein Wert pro "Durchlauf" ausgegeben wird, oder wie kann ich sonst das ganze Array ausgeben lassen? Geht das ohne for-Schleife? *noob*

Meinst du das mit clone und equals etwa so?

Java:
public boolean equals (int [] a, int [] b){
				int bo = 0;
				for (int i = 0; i < a.length; i++) {
				if (a [i] != b [i]) return (bo == 0); 
				} 
			return (bo==1);
		}
	
	
	public int[] clone (int [] a){
		int i = a.length;
		int [] b = new int [i];
		Random generator = new Random();
		
		while (i < a.length){
			b [i] = generator.nextInt (100);
			i++;	
		}	
		while (i < a.length){
			a[i] = b[i];
			i ++;
		}
		return b;
	}

Und weißt du was mein Konstruktor hat, weil der erzeugt ja immer nur so kryptische Dinge?

Lg =)
 

Volvagia

Top Contributor
Mit return wird gar nichts ausgegeben, sondern 1 Wert zurückgegeben, und danach wird die Methode beendet. Hat er doch schon geschrieben.
System.out.println(Obj.) ruft einfach nur die toString-Methode der Klasse auf, die in der Standartversion den Hashwert und den Klassennamen ausgibt.
 

fastjack

Top Contributor
Der Konstruktor erzeugt Zufallswerte, mehr nicht.

toString kannst Du so machen:

Java:
public String toString(int[] a ) {
    StringBuilder s = new StringBuilder();
    for (int i = 0; i < a.length; i++) {
        s.append("Element: ");
        s.append(a[i]);
        if (i < a.length - 1) {
            s.append(", ");
        }
    }
    return s.toString();
}

// noch einfacher

public String toString(int[] a ) {
    return Arrays.asList(a).toString();
}

// equals

public boolean equals (int[] a, int[] b) {
    for (int i = 0; i < a.length; i++) {
        if (a[i] != b[i]) {
            return false; // wenn ein Element falsch ist, kannst Du abbrechen
        } 
    }
    return true; // wenn alles gleich ist, gibst Du true zurück
}
    
// clone

public int[] clone (int[] a) {
    int[] b = new int[a.length];
    for (int i = 0; i < this.a.length; i++) {
        b[i] = a[i];
    }
    return b;
}

Ungefähr s, Du mußt eventuell auch abchecken, wenn jemand ungültige Eingabeparameter in die Methoden gibt, z.B. null.

edit: Tamara ist ein sehr schöner Name.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
W Java-Code mit Array Java Basics - Anfänger-Themen 14
C Java Array Struktur, welche ist wann besser? Java Basics - Anfänger-Themen 12
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
M Java Array Java Basics - Anfänger-Themen 8
t2im Java Array-Länge ändern? Java Basics - Anfänger-Themen 22
G Java 2-dimensionalen int-Array Summe Java Basics - Anfänger-Themen 2
Splayfer Java Array Probleme Java Basics - Anfänger-Themen 3
Splayfer Java Array Problem... Java Basics - Anfänger-Themen 2
I Java zweidimensionales array befüllen mit for-schleife Java Basics - Anfänger-Themen 2
M Quiz in Java programmieren mit Array Java Basics - Anfänger-Themen 8
L Java Int-Array, Zahlen sortieren Java Basics - Anfänger-Themen 8
T Java: Array monat absteigend sortieren? Java Basics - Anfänger-Themen 1
S Java Array Länge aus anderer Klasse lesen Java Basics - Anfänger-Themen 1
X Java zweidimensionales Array Java Basics - Anfänger-Themen 5
X Array List geordnet ausgeben. (JSF und JAVA) Java Basics - Anfänger-Themen 1
S Array Java erweitern Java Basics - Anfänger-Themen 27
M Wie kann ich im JAVA-GUI im Textfeld ein Array speichern Java Basics - Anfänger-Themen 4
B Java Array Fakultät Function Java Basics - Anfänger-Themen 5
E Wie wird in Java ein Char-Array terminiert ? Java Basics - Anfänger-Themen 15
kilopack15 Java Array Skalarprodukt testen Java Basics - Anfänger-Themen 21
T Variablen PHP Array jetzt für Java Java Basics - Anfänger-Themen 1
W Erste Schritte füllen Attribute java Klasse in for Schleife und Array Java Basics - Anfänger-Themen 16
X wie kann ich in bluej/java einene 2d array mit zahlen fuellen, so dass sich diese in der der zeilen Java Basics - Anfänger-Themen 2
J Java Array Zeichnung Skalieren und verschieben Java Basics - Anfänger-Themen 5
P Java : Array Fehler Java Basics - Anfänger-Themen 4
B Java rekursion minimum von ein array Java Basics - Anfänger-Themen 2
U JAVA - Ungerade Zahlen Array Java Basics - Anfänger-Themen 9
B Input/Output Formatierter Text aus PDF als Array auswerten in JAVA möglich ? Java Basics - Anfänger-Themen 8
T Erste Schritte Java ein Array Feld[index] zurueckgeben? Java Basics - Anfänger-Themen 20
U Kann man in Java ein Array zum Teil vorbelegen? Java Basics - Anfänger-Themen 4
J Java-Array abwechselnd Gross- und Kleinbuchstaben Java Basics - Anfänger-Themen 5
M Java spuckt Exeption bei Array aus Java Basics - Anfänger-Themen 2
T Collections Java Anfänger - Array-Struktur vollkommen unklar Java Basics - Anfänger-Themen 2
M java.util.ArrayList to java.sql.Array Java Basics - Anfänger-Themen 4
K Java Array Problem Java Basics - Anfänger-Themen 3
M Java Array - Durchschnitt Java Basics - Anfänger-Themen 7
S java array Java Basics - Anfänger-Themen 7
S JAVA Array Anwendersystem Java Basics - Anfänger-Themen 8
K java.lang.NullPointerException in Array bei Arraylistübergabe Java Basics - Anfänger-Themen 7
A Anfängerfrage - array required, but java.lang.String found Java Basics - Anfänger-Themen 7
J Ringpuffer als Array in Java ;-) Java Basics - Anfänger-Themen 3
B Java Array List größe auslesen zur Suchfunktion Java Basics - Anfänger-Themen 5
C Bäume in Java. Knoten in Array speichern Java Basics - Anfänger-Themen 3
C Java Array wie in PHP? Java Basics - Anfänger-Themen 9
S Java - Double-Array-Wertzuweisung erfolgt nicht Java Basics - Anfänger-Themen 4
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
A Lerngruppe Java Java Basics - Anfänger-Themen 2
G Help me in the Java Program Java Basics - Anfänger-Themen 2
L Java- Vererbung Java Basics - Anfänger-Themen 4
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
_so_far_away_ Ich möchte Java lernen Java Basics - Anfänger-Themen 11
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben