Min eines Arrays mit Objekten

Kloman01

Mitglied
Hallo,

eine Frage. Angenommen ich habe zwei Klassen. In Klasse A haben wir eine private Komponente. In Klasse B haben wir ein Array mit Objecten der Klasse A. Die private Komponente wird mittels einer Methode eingelesen.

Wie könnte ich den kleinsten Wert herausfinden um mit diesem weiterzuarbeiten ?

Vielen Dank im Voraus,
eine Text-Antwort wäre super ! (Keine Lösung)

MfG Kloman01
 

Flown

Administrator
Mitarbeiter
Also nochmal für mein Verständnis: Du hast Klasse A und B. A hat gewisse private Attribute (die Basis auf denen du sortieren willst). B hat ein Array bestehend aus A's.

Wenn das so richtig ist:
Sollte A Comparable implementieren, damit kannst du dann dein Array/Collection sortieren und kannst dir dann von der ersten Stelle dein "kleinstes" Element holen.
 

Kloman01

Mitglied
Also wenn du meinst das A's Objecte der Klasse A sind dann ja ! :D

Comparable hab ich leider noch nicht verwendet. Wie würde das genau funktionieren ?
 

Flown

Administrator
Mitarbeiter
Hier ein Beispiel, wie ich dein Problem verstehe (gleich mit Lösungsansatz):

Java:
import java.util.Arrays;

public class Test {

  public static void main(String... args) {
    A[] arr = new A[]{new A(2), new A(-20), new A(10), new A(20), new A(-5)};
    B b = new B(arr);
    A a = b.printArrayAndGetSmallest();
    System.out.println(a.getAttribute());
  }

  public Test() {
  }
}

class A implements Comparable<A> {

  private int attribute;

  public A(int attribute) {
    this.attribute = attribute;
  }

  public int getAttribute() {
    return attribute;
  }

  public void setAttribute(int attribute) {
    this.attribute = attribute;
  }

  @Override
  public int compareTo(A o) {
    return Integer.compare(attribute, o.attribute);
  }

  @Override
  public String toString() {
    return "A{" + "attribute=" + attribute + '}';
  }
}

class B {

  private A[] myArr;

  public B(A[] myArr) {
    this.myArr = myArr;
  }

  public A printArrayAndGetSmallest() {
    Arrays.sort(myArr);
    System.out.println(Arrays.toString(myArr));
    return myArr[0];
  }
}
 

Chloroplast

Bekanntes Mitglied
ich halte eine komplette sortierung für overkill wenn nur der kleinste eintrag wichtig ist. Da reicht es einfach einmal rüberzugehen und in eine weitere variable das objekt zu speichern falls es kleiner ist. es müsste eigentlich schneller gehen und sieht auch simpler aus :D

angenommen Klasse A bestitzt eine Methode boolean isSmaller(A a) welche true ist wenn das objekt kleiner ist als das übergebene

Java:
A[] mengeVonA;
A smallest = null;
for(int i = 0; i < mengeVonA.length; ++i){
  if(smallest == null || mengeVonA[i].isSmaller(smallest)){
    smallest = mengeVonA[i];
  }
}
sollte smallest am ende noch null sein war kein element in der liste. natürlich kann man das noch anderweitig umschreiben. aber das erstmal als grundgerüst.

LG Chloroplast
 
Zuletzt bearbeitet:

Kloman01

Mitglied
Ich glaub ich muss mein Problem nochma erklären bzw weiter ausholen.

Also ich hab meine Klasse A :

Java:
import java.util.*;


public class StockTick  {
	public float kursDiff;
	private double kurs;
	
//	public StockTick(double X1) {
//		this.kursDiff = (float)X1;
//	}
	
	public String toString() {
		String str = String.valueOf(this.kurs);
		return str;
		
	}
	
	public void input(double X1) {
		this.kurs = X1;
	}
	
	
	public double getKurs() {
		return this.kurs;
		
	}
	
	public void setKurs(double letztKurs, float kursDiff) {
		this.kurs = letztKurs + kursDiff;
	}
}

Hier meine Klasse B mit der Main

Java:
import java.util.*;

public class Main {

	public static void main(String[] args) {
		Scanner nScan = new Scanner(System.in);
		StockTick[] kursArray = new StockTick[21];

		for (int i = 0; i < kursArray.length; i++) {
			kursArray[i] = new StockTick();
		}
		double X1 = Math.floor((Math.random() * (600 - 500)) + 500);
		kursArray[0].input(X1);

		for (int i = 1; i < kursArray.length; i++) {
			double X = Math.floor(Math.random() * 60) - 30;
			kursArray[i].kursDiff = (float)X;
		}

		System.out.println("Anfangskurs Tag 0 : " + kursArray[0]);

			for (int j = 1; j < kursArray.length; j++) {
				System.out.println("Kursveränderung Tag " + j + " : " + kursArray[j].kursDiff);
			}
			
			for (int i = 1; i < kursArray.length; i++) {
				kursArray[i].setKurs(kursArray[i-1].getKurs(), kursArray[i].kursDiff);
			}
			
			for (int j = 1; j < kursArray.length; j++) {
				System.out.println("Kurs Tag " + j + " : " + kursArray[j]);
			}
			

		}
	}

Sprich wir haben ein Startkurs einer Aktie Random und Random kursschwankungen. Durch den Startkurs und die schwankungen setzen wir das private attribut kurs letzendlich. Sprich jedes Object hat in diesem privaten attribut seinen aktuellen kurs gespeichert. um nun herauszufinden, wann man es am besten gekauft hätte, brauch ich den kleinsten wert. anschließend muss ich zwischen dem kleinsten, und allen nachfolgenden die großte gewinnspanne noch ausrechnen.

Denn wenn ich das so wie Chloroplast mache, werd ich drauf hingewiesen das die Methode isSmaller nicht für den Tyyp StockTick definiert ist.
 

Chloroplast

Bekanntes Mitglied
logisch, ich meinte damit wenn man eine methdode hat die das verarbeitet. dann schreib doch einfach eine. müsst irgentwie so aussehen (für fehler bitte nicht schlagen - es ist schon spät und ich bin müde)

Java:
public boolean isSmaller(StockTick other){
  return this.getKurs()<other.getKurs();
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Kornblume Nulltyp eines Arrays von Objekten? Java Basics - Anfänger-Themen 10
R Verschieben eines Arrays aus Objekten Java Basics - Anfänger-Themen 16
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
pc pc pc pc pc letztes Element eines Arrays n Java Basics - Anfänger-Themen 3
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
D Inhalt eines Arrays ausgeben Java Basics - Anfänger-Themen 7
A Jedes zweite Element eines Arrays entfernen Java Basics - Anfänger-Themen 30
R While-Loop der die Einträge eines Arrays in umgekehrter Reihenfolge anzeigt Java Basics - Anfänger-Themen 3
C initialisieren eines arrays richtiger Größe und mit geeignetem Datentyp Java Basics - Anfänger-Themen 26
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
L Methode zum invertieren eines Arrays Java Basics - Anfänger-Themen 7
Kawastori Größe eines Arrays bestimmen Java Basics - Anfänger-Themen 13
Lena_2611 Vergleich von Array1 Index mit Array2 Wert und erzeugen eines neues Arrays Java Basics - Anfänger-Themen 8
A Teilarrays eines 2D-Arrays sortieren 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
M Rückgabe eines Arrays Java Basics - Anfänger-Themen 10
Z Erste Schritte Indexe innerhalb eines Arrays zusammensählen Java Basics - Anfänger-Themen 14
N Länge eines Arrays in einem Objekt testen Java Basics - Anfänger-Themen 51
A Freie Stelle eines Arrays Java Basics - Anfänger-Themen 17
R Zugriff auf den Index eines Arrays, welches ein Objekt ist. Java Basics - Anfänger-Themen 4
H Größte Duplikat (Größte Doppelte Wert) eines Arrays ausgeben Java Basics - Anfänger-Themen 9
S Elemente eines Arrays bei Ausgabe auslassen Java Basics - Anfänger-Themen 2
A Arrays kombinieren (länge eines Arrays kann 0 sein) Java Basics - Anfänger-Themen 6
A Alle true Werte eines boolean Arrays herausfiltern Java Basics - Anfänger-Themen 19
M Die Inhalte eines Arrays mit der Methode Arrays.toString ausgeben Java Basics - Anfänger-Themen 4
L Tiefe Kopie einer Zeile eines zweidimensionalen Arrays Java Basics - Anfänger-Themen 1
O Länge eines Arrays Java Basics - Anfänger-Themen 6
CptK Variablen Teile eines Arrays zufällig sortieren Java Basics - Anfänger-Themen 7
L Bestimmte Werte eines Arrays ausgeben. Java Basics - Anfänger-Themen 3
I bestimmten Wert eines Arrays Java Basics - Anfänger-Themen 23
Z Ersten Buchstaben eines Elements eines String-Arrays auslesen Java Basics - Anfänger-Themen 5
S Nach dem Herüberschieben eines Arrays zwischen 2 Frames öffnet sich das Frame nicht mehr Java Basics - Anfänger-Themen 12
J eine Art Histogramm mithilfe eines Arrays ausgeben Java Basics - Anfänger-Themen 11
J Wert eines Arrays einer Variable zuweisen, sobald der Wert eines anderen Arrays eintritt Java Basics - Anfänger-Themen 2
T Produkt eines mehrdimensionalen Arrays Java Basics - Anfänger-Themen 5
T Erste Schritte Frage zur Initialisierung eines Mehrdimensionalen Arrays Java Basics - Anfänger-Themen 3
V Ausgeben eines 4-Dimensionalen Arrays Java Basics - Anfänger-Themen 6
kilopack15 Größte zahl eines Arrays finden Java Basics - Anfänger-Themen 1
K Sortierung eines int-Arrays von groß nach klein Java Basics - Anfänger-Themen 3
M Ausgabe eines Arrays auf Label (Javafx) Java Basics - Anfänger-Themen 4
C Methoden Vertikales spiegeln eines Bildes (zweidimensionale Arrays) Java Basics - Anfänger-Themen 5
M Elemente eines Arrays verschieben Java Basics - Anfänger-Themen 9
N Zählen von Rationalen Werten eines Arrays Java Basics - Anfänger-Themen 10
I Zeilenweises Einlesen eines zweidimensionalen Arrays Java Basics - Anfänger-Themen 4
L Probleme bei Rückgabe eines Arrays in einer Methode Java Basics - Anfänger-Themen 47
Silvascus Erste Schritte Werte innerhalb eines Arrays addieren Java Basics - Anfänger-Themen 3
J Ungewolltes Sortieren eines Arrays Java Basics - Anfänger-Themen 4
D Größe der Zahlenkombinationen eines Arrays begrenzen Java Basics - Anfänger-Themen 0
R Palindrom eines int-Arrays berechnen Java Basics - Anfänger-Themen 14
J Erste Schritte Zweithöchster Wert eines Arrays herausfinden - warum klappt mein Code nicht? Java Basics - Anfänger-Themen 3
T Anzahl bestimmter Werte eines arrays bestimmen Java Basics - Anfänger-Themen 4
H Erste Schritte Größe eines 2 dimensionalen Arrays ausgeben Java Basics - Anfänger-Themen 6
T Die am häufigsten enthaltene Zahl eines Arrays liefern Java Basics - Anfänger-Themen 2
B Werte eines Arrays überschreiben. Java Basics - Anfänger-Themen 3
H Einlesen eines kompletten Arrays Java Basics - Anfänger-Themen 2
M Ausgeben eines 2D Arrays mit int UND String werten - BLUEJ! Java Basics - Anfänger-Themen 4
S Datentypen Dimensionalität eines Arrays ermitteln Java Basics - Anfänger-Themen 2
1 den Inhalt eines Arrays umdrehen Java Basics - Anfänger-Themen 11
M Problem bei Ausgabe eines Arrays Java Basics - Anfänger-Themen 5
M Die drei größten Werte eines Arrays Java Basics - Anfänger-Themen 6
G For-Each und Modifikation eines Arrays Java Basics - Anfänger-Themen 9
G Long und Frage zum Speicherplatz eines Arrays Java Basics - Anfänger-Themen 7
X Methoden Vertauschen von 2 Werten eines Arrays Java Basics - Anfänger-Themen 13
R Klasse eines Arrays Java Basics - Anfänger-Themen 2
D Eine Stelle eines Char- Arrays nach dem vorkommen in einem ganzem anderem Array überprüfen Java Basics - Anfänger-Themen 20
S Datentypen Ändern eines byte[] Arrays Java Basics - Anfänger-Themen 4
P quickSort eines Objekt-Arrays geht nicht! Java Basics - Anfänger-Themen 11
B Hiilfee! Step by Step sortierung eines Arrays... Java Basics - Anfänger-Themen 19
A Ausgabe eines zufälligen Arrays Java Basics - Anfänger-Themen 2
Kaniee Zugriffe innerhalb eines Arrays Java Basics - Anfänger-Themen 9
J Inhalt eines Arrays vergleichen? Java Basics - Anfänger-Themen 8
K Zufällige Auswahl innerhalb eines Arrays und Arrays aus JLabel füllen Java Basics - Anfänger-Themen 32
B Werte eines Arrays addieren Java Basics - Anfänger-Themen 16
K Komplement eines Arrays bilden Java Basics - Anfänger-Themen 5
L Element in Mitten eines Arrays einfügen Java Basics - Anfänger-Themen 3
E Elemente innerhalb eines Arrays vergleichen Java Basics - Anfänger-Themen 7
A Datentypen Größe eines mehrdimensionales Arrays Java Basics - Anfänger-Themen 4
E Länge eines spez. Arrays Java Basics - Anfänger-Themen 10
I Summe eines Arrays ohne Schleife Java Basics - Anfänger-Themen 4
M ungerade zahlen eines arrays nach hinten tauschen Java Basics - Anfänger-Themen 13
J geschickter Algorithmus um die 'Umgebung' einer stelle eines Arrays zu durchsuchen Java Basics - Anfänger-Themen 7
W elemente eines arrays in einen string schreiben Java Basics - Anfänger-Themen 3
B Problem bei Überprüfung des Inhalts eines Arrays Java Basics - Anfänger-Themen 25
R Die Werte eines Arrays ins andere Schreiben Java Basics - Anfänger-Themen 6
L Speichergröße eines Arrays Java Basics - Anfänger-Themen 5
A Anzahl Zeilen eines Arrays bestimmen Java Basics - Anfänger-Themen 10
A Wie greif ich auf Elemente eines Arrays in einem Vektor zu? Java Basics - Anfänger-Themen 6
J Zeilen eines Arrays vergleichen Java Basics - Anfänger-Themen 2
A Null Pointer Exception beim Erstellen eines Arrays aus einer eigenen Klasse Java Basics - Anfänger-Themen 3
J summe von aufeinander folgenden floats eines arrays Java Basics - Anfänger-Themen 10
D prüfen ob länge eines Arrays == 0 Java Basics - Anfänger-Themen 4
Luk10 Größe eines Arrays ausgeben Java Basics - Anfänger-Themen 4
V Vorstellung und Problem bei Ausgabe des Inhalts eines Arrays Java Basics - Anfänger-Themen 4
S Elemente eines Arrays in Console eingeben Java Basics - Anfänger-Themen 5
E gezielte Nummerierung eines Arrays Java Basics - Anfänger-Themen 9
O Werte eines arrays splitten Java Basics - Anfänger-Themen 4
A Datentypen Nächsten freien index eines arrays finden Java Basics - Anfänger-Themen 5
J Problem mit NullPointerException bei Verwendung eines Arrays Java Basics - Anfänger-Themen 6
S Byte eines arrays Java Basics - Anfänger-Themen 17

Ähnliche Java Themen

Neue Themen


Oben