X Werte in ArrayList von Point Objekte alle gleich ?

dutchman79

Mitglied
Ich habe eine ArrayList mit Stützstellen befüllt. ( double x, double y)

Also ArrayList <Stützstelle> stützstellen = new ArrayList<Stützstelle>();

Alle x Werte der Stützstellen müssen unterschiedlich sein, das möchte ich überprüfen, wenn nicht, Exception werfen.

Wenn alle y Werte gleich sind möchte ich nur ein Warnungtext ausgeben.

Ich benutze die Stützstellen letzendlich um linear zu interpolieren, deswegen diese Meldungen.

Kann mir jemand weiterhelfen ?
 
B

bygones

Gast
was ist deine Frage ?

wie du deine Warnungen ausgeben kannst ? wie du überprüfen kannst, dass kein x wert gleich ist ? dass alle y gleich sind ?
 

nrg

Top Contributor
du könntest die Liste in ein Set übernehmen und dann kucken, ob die Größen der Liste und des Sets sich unterscheiden. dazu solltest du in der Klasse Stützstelle (btw. sollte man imho Umlaute in Klassennamen verhindern) equals und hashcode überschreiben. Eine andere Möglichkeit wäre das einfach selbst zu überprüfen. Dazu würde ich die Liste erst mal Sortierten. Dafür musst du in Stützstelle Comparable implementieren und die compareTo überschreiben. Dann durchiterieren und den aktuellen Index immer mit dem Folgeindex vergleichen.

Die Frage, die ich mir noch stelle: willst du überhaupt Dubletten zulassen?? Wenn nein, würde ich sofort ein Set nehmen.
 

dutchman79

Mitglied
Okay,

Da verstehe ich noch wenig von.

x Werte dürfen nicht doppelt vorkommen, y Werte wohl.

Bis jetzt habe ich nach mühsame Arbeit (weil ich es nicht verstehe) Comparable implementiert in der Stuetzstelle Klasse, und deswegen kann ich die x Werte wohl schonmal nach Größe sortieren
 

nrg

Top Contributor
hast du die compareTo-Methode überschrieben? Dann kannst du das Ding ja mal Sortieren. Wenn deine Grundreihenfolge wichtig ist, würde ich mir diese merken oder wenn die Liste nicht so groß ist vorher kopieren.

Dann einfach sowas in der Art (keine Garantie - einfach so in Browser getippt):
Java:
		for (int i = 0; i < list.size()-1; i++) {
			Stuetzstelle current = list.get(i);
			Stuetzstelle next = list.get(i+1);
			if (current.getX() == next.getX())
				throw new IllegalArgumentException("Identische X-Werte gefunden");
			if (current.getY() == next.getY())
				System.out.println("Warnung: identische Y-Werte gefunden");
		}

Voraussetzung sind natürlich die getter in der Klasse Stuetzstelle
 

Andi_CH

Top Contributor
eine Stützstelle ist (TO korrigier mich bitte wenn ich falsch liege) das y zu einem eindeutigen x
( ich meine y = f(x) )

x muss eindeutig sein -> HashMap<Double, Double> (Double an erster Stelle ist aber gefährlich ;-) )

Du kannst einfach einfügen und der letzte Wert bleibt gespeichert.
Exceptions kannst du manuell auslösen

Java:
	private static HashMap<Integer, Double> s = new HashMap<Integer, Double>();
	public static void main(String[] args) throws Exception {
		s.put(1, 1.0);
		s.put(2, 3.0);
		s.put(2, 2.0); // jetzt ist bei 2 der Wert 2.0 gespeichert, 3.0 ist weg
		// oder du machst das
		if (s.containsKey(2))
			throw new Exception();
	}
 
B

bygones

Gast
map wuerde ich hier nicht nehmen, durch das put überschreibst du einen bestehenden Eintrag und hast kein direktes Feedback.

Aber der Ansatz dass schon beim einfügen zu checken halte ich für richtig.

Ich würde in der Klasse im Hintergrund ein Set nehmen, dies erlaubt ja per se keine Duplikate. Das add beim Set gibt als Rückgabewert dann true (wurde reingenommen) bzw false (gabs schon) zurück. Darauf kannst du reagieren und deine Exception werfen.
Das für die x Werte

EDIT: und bitte übernehme nicht das Übel von [c]throw Exception[/c] - man sollte immer eine konkrete Exception nehmen und nicht Exception als Typ
 

dutchman79

Mitglied
Okay, danke für alle Hilfe.
Bis jetzt habe ich :

Java:
public class Stuetzstelle implements Comparable<Stuetzstelle> {
	double x;
	double y;

	Stuetzstelle(double x, double y) {
		this.x = x;
		this.y = y;
	}
	public int compareTo(Stuetzstelle o) {
		if (o.x < this.x) {
			return 1;
		} else if (o.x > this.x) {
			return -1;
		} else {
			return 0;
		}

	}
}
public class MgRulesCompliance implements Imessgroessen {

	// ArrayList mit allen Stuetzpunkten
	ArrayList<Stuetzstelle> stuetzstellen;
	double x0, x1, y0, y1; // Definitionsbereich x0 bis x1, Wertebereich y0 bis y1

	// Konstruktor
	public MgRulesCompliance(double x0, double x1, double y0, double y1,
			ArrayList<Stuetzstelle> stuetzstellen) throws IllegalArgumentException {

		// Ueberpruefung ob die x Werte der Stuetzstellen unterschiedlich sind
		for (int i = 0; i < stuetzstellen.size() - 1; i++) {
			if (stuetzstellen.get(i).x == stuetzstellen.get(i + 1).x) {
				throw new IllegalArgumentException(
						"Stuetzstellen mit gleichem x Wert vorhanden.");
			}
		}
		// Ueberpruefung ob es mehr als 2 Stuetzstellen gibt (notwendige
		// Bedingung)
		if (stuetzstellen.size()<=1) {
			throw new IllegalArgumentException("Nur eine Stuetzstelle vorhanden.");
		} else {
			Collections.sort(stuetzstellen);
			this.stuetzstellen = stuetzstellen;
			this.x0 = x0;
			this.x1 = x1;
			this.y0 = y0;
			this.y1 = y1;
		}
 

nrg

Top Contributor
aus dem Namen MgRulesCompliance geht jetzt nicht unbedingt der Nutzen der Klasse hervor aber warum schreibst du dort nicht einfach eine add-Methode und überprüfst das da? Ansonsten habe ich dir oben ein kleines Beispiel geschrieben, wie es vllt mit sort klappen könnte. Ahja IllegalArgumentException ist eine unchecked-Exception und muss nicht geworfen werden.

edit: würde in deine compareTo noch y einbinden.
 

dutchman79

Mitglied
MgRulesCompliance ist eine von 4 Klassen die alle eine andere ArrayList mit Stützstellen übergeben bekommen und die alle 4 das Interface IMessgroessen implementieren.

Das Interface IMessgroessen hat 3 Methoden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Methoden Werte einer ArrayList als Parameter übergeben. Java Basics - Anfänger-Themen 4
F Werte in einer Arraylist Zählen Java Basics - Anfänger-Themen 2
L Methoden ArrayList Werte hinzufügen und löschen Java Basics - Anfänger-Themen 32
S ArrayList Gruppieren, "Doppelte Werte" Addieren Java Basics - Anfänger-Themen 5
D Methoden ArrayList Rückgabe bringt komische Werte Java Basics - Anfänger-Themen 12
D Bestimmte Werte von Objekten aus einer ArrayList in eine andere ArrayList kopieren Java Basics - Anfänger-Themen 14
P ArrayList aus eigener Klasse "überschreibt" Werte nicht Java Basics - Anfänger-Themen 4
F Wie Werte einer ArrayList an einen 'Custom'-Iterator übergeben? Java Basics - Anfänger-Themen 2
Z ArrayList übergibt die Werte nicht Java Basics - Anfänger-Themen 4
N Zugriff auf Werte in Arrays innerhalb ArrayList Java Basics - Anfänger-Themen 2
O Werte aus ArrayList multiplizieren und dann Ergebnis addieren Java Basics - Anfänger-Themen 3
T integer Werte einer ArrayList miteinander addieren Java Basics - Anfänger-Themen 5
O Werte aus HashMap in einer ArrayList Java Basics - Anfänger-Themen 3
S Arraylist durchsuchen und werte speichern Java Basics - Anfänger-Themen 14
B ArrayList füllen und Werte summieren Java Basics - Anfänger-Themen 2
M ArrayList: Werte aussortieren Java Basics - Anfänger-Themen 14
H Java- ArrayList überschreibt Werte eigenständig! Java Basics - Anfänger-Themen 4
K Mehrere Werte in einem Switch Case parallel überprüfen Java Basics - Anfänger-Themen 23
F 2x 16bit Werte zu einem 32bit und dann splitten mit 0xb Java Basics - Anfänger-Themen 1
ptcho Werte/Position nach dem Funktionsaufruf tauschen? Java Basics - Anfänger-Themen 1
K Warum sind Werte in den Feldern ? Java Basics - Anfänger-Themen 2
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
javaBoon86 Arrays 2 Dimension Werte ausgeben Java Basics - Anfänger-Themen 15
E Reihenfolge der Werte umdrehen (mittels statischem int-Array Java Basics - Anfänger-Themen 3
N Einzelne Werte aus einem TreeSet auslesen Java Basics - Anfänger-Themen 2
TeacherMrSSimon Schachspiel, Werte in Figur eintragen klappt nicht Java Basics - Anfänger-Themen 23
TheSepp Nur Arrays ausgeben, die Werte zugewiesen haben. Java Basics - Anfänger-Themen 4
T ungeordnete Werte-Paare in einer Liste Java Basics - Anfänger-Themen 7
M Werte in Felder speichern und geordnet ausgeben Java Basics - Anfänger-Themen 8
A CSv.Datei einlesen und die werte in zweidemosional Int Array speichern Java Basics - Anfänger-Themen 9
Jambolo Methode, welche die 3 letzten Parameter Werte speichert Java Basics - Anfänger-Themen 20
Chris.089 2 Werte im Array tauschen Java Basics - Anfänger-Themen 6
docmas 2DArray Werte werden nur untereinander ausgegeben Java Basics - Anfänger-Themen 1
M Nur int-Werte erlauben Java Basics - Anfänger-Themen 11
Fats Waller Compiler-Fehler Kann ich einen String und die Summe zweier Char Werte mittels der println Anweisung ausgeben Java Basics - Anfänger-Themen 4
P Doppelte werte in einer Liste zählen Java Basics - Anfänger-Themen 11
M Wie kann eine Methode eine andere Methode um Werte wie z.B. 1 erhöhen? Java Basics - Anfänger-Themen 6
Igig1 Wie lasse ich dir Werte in einem Array zusammenrücken? Java Basics - Anfänger-Themen 4
Igig1 Welche Werte sind als default Werte in einem Array, der als Datentyp eine Klasse hat? Java Basics - Anfänger-Themen 1
J Methoden Positive Werte zählen Java Basics - Anfänger-Themen 3
E Meine JCombobox werte an ohne selectiert zu haben Java Basics - Anfänger-Themen 6
H OOP Werte mit Set verändern Java Basics - Anfänger-Themen 6
W Werte durch Konsole einlesen Java Basics - Anfänger-Themen 10
H Welche Werte bei Objekterzeugung eingeben? Java Basics - Anfänger-Themen 2
M Von einem Menü Methode aus anderer Klasse ausführen, die errechnete Werte in Datei schreibt. Java Basics - Anfänger-Themen 8
sashady ursprüngliche Array-Werte bei erneutem Aufruf? Java Basics - Anfänger-Themen 7
cmn489 Werte beim Funktionsaufruf in ein Feld übertragen(falls dieses leer ist) Java Basics - Anfänger-Themen 1
E In Array Werte einfügen? Java Basics - Anfänger-Themen 5
HighLife Bestimmte Werte aus Array zählen Java Basics - Anfänger-Themen 15
J Zufallszahlen generieren und Werte vergleichen Java Basics - Anfänger-Themen 3
M Wie kann ich Werte die in einer While Schleife sind weiter genutzt werden? Java Basics - Anfänger-Themen 7
L Werte von Objekte addieren Java Basics - Anfänger-Themen 14
R Werte und Reihenfolge in 2d Arrays vergleichen Java Basics - Anfänger-Themen 5
I Werte (u.a. Geldbeträge) in Datenbank speichern und Rundungen? Java Basics - Anfänger-Themen 8
eleonori Durchschnitt aller Werte eines Baums berechnen Java Basics - Anfänger-Themen 5
G Array Werte addieren Java Basics - Anfänger-Themen 4
J Methoden Frage: Array-Werte in anderer Methode ändern Java Basics - Anfänger-Themen 4
C Array-Werte werden gemischt, ohne Logik Java Basics - Anfänger-Themen 2
java3690 Java- liste füllen ud die werte addieren Java Basics - Anfänger-Themen 13
C Zufallszahl + Werte bereich einstellen Java Basics - Anfänger-Themen 2
J Alle Werte eines Strings zusammen addieren Java Basics - Anfänger-Themen 15
L 2 Dimensional Array werte überschreiben Java Basics - Anfänger-Themen 1
K Array alle Werte aufsummieren und ausgeben Java Basics - Anfänger-Themen 6
V Collections int Werte in einer Liste sortieren Java Basics - Anfänger-Themen 23
Rubberduck Combobox-Werte in GUI anzeigen Java Basics - Anfänger-Themen 13
J Neue Werte in ein Array hinzugeben Java Basics - Anfänger-Themen 8
L Wie frage ich ab, ob in einem Array, Werte doppelt vorkommen? Java Basics - Anfänger-Themen 4
A Negative float Werte? Java Basics - Anfänger-Themen 10
Kirby.exe Fehlende Int Werte aus Array mit streams finden Java Basics - Anfänger-Themen 19
Ellachen55 Wie nach häufigste Werte im Array suchen? Java Basics - Anfänger-Themen 2
D Input/Output Input von zwei Koordinaten validieren und anschließend Werte speichern Java Basics - Anfänger-Themen 7
F Variablen Werte einer Klasse überschreiben Java Basics - Anfänger-Themen 4
M Werte ändern sich nicht mehr nach Reset Java Basics - Anfänger-Themen 14
F Character umwandeln als Double Werte Java Basics - Anfänger-Themen 8
B Werte aus einem Unterprogramm in ein Array schreiben Java Basics - Anfänger-Themen 2
L Nur Bestimmte Werte aus einem Array in ein anderes Speichern Java Basics - Anfänger-Themen 11
C Ganzzahlige Werte in Boolean ausgeben und überprüfen ob Primzahl oder nicht, wenn es keine Primzahl ist soll es die Primfaktorzerlegung ausgeben Java Basics - Anfänger-Themen 4
S Werte aufsummieren in java? Java Basics - Anfänger-Themen 5
M Werte des Arrays addieren Java Basics - Anfänger-Themen 5
A Alle true Werte eines boolean Arrays herausfiltern Java Basics - Anfänger-Themen 19
C System.in.read() Boolsche Werte vergleichen Java Basics - Anfänger-Themen 8
M prüfen ob alle array werte gleich sind Java Basics - Anfänger-Themen 27
D Werte aus einem BinärBaum in einem Array speichern Java Basics - Anfänger-Themen 1
R Datenbank-Werte dynamisch ausgeben Java Basics - Anfänger-Themen 19
E Eigenschaften Werte, in einer anderen Klasse, zuweisen Java Basics - Anfänger-Themen 40
H Methoden Nutzung der Werte einer ausgeführten Objektmethode in anderen Objektmethoden Java Basics - Anfänger-Themen 2
O Map Werte Java Basics - Anfänger-Themen 2
dapzoo Compiler-Fehler Beim Werte verteilen in Objektarray NullPointerException Java Basics - Anfänger-Themen 4
L Werte zufällig aus Array zurückgeben Java Basics - Anfänger-Themen 15
B mehrere Werte mit scanner und while schleife einlesen, max berechnen bzw addieren Java Basics - Anfänger-Themen 2
S werte von objekten in schleife verändern Java Basics - Anfänger-Themen 14
R Vererbung werte von einem Objekt aus ein anderes übertragen Java Basics - Anfänger-Themen 7
D Datei auslesen & Werte in Variable speichern Java Basics - Anfänger-Themen 12
N Methoden HashMap interne Werte miteinander vergleichen Java Basics - Anfänger-Themen 7
L Bestimmte Werte eines Arrays ausgeben. Java Basics - Anfänger-Themen 3
Hanschyo String kann nicht Werte von Long annehmen Java Basics - Anfänger-Themen 2
A Sortieren ausgerechneter Werte aus einer TXT Datei Java Basics - Anfänger-Themen 8
S Werte in Klasse übergeben Java Basics - Anfänger-Themen 12
C Auf einzelne Werte aus HashSet zugreifen Java Basics - Anfänger-Themen 10
S Werte in Liste mit Nachfolger vergleichen Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben