Rückverweis

schildi

Neues Mitglied
Hallo, ich bin neu hier und hätte kurz eine Frage an euch.

Ich habe drei Klassen, Face, Line und Point. Wie zu sehen ist Point eine ArrayList von Line und Line eine ArrayList von Face. Nun würde ich gerne eine Methode realisieren, in der ich herausbekomme ob Point in der ArrayList von Line enthalten ist oder ob Line in der ArrayList von Face enthalten ist. Als Rückgabewert sollten z.B. die Line's zurückgegeben werden, welche den jeweiligen Punkt enthalten.

Es sollte in etwa so aussehen:

Java:
ArrayList<Line> al = Point.isPartOf();

Für eine Idee oder eine Hilfestellung wäre ich sehr dankbar.

Java:
public class Face {
	private Sting name;
	private ArrayList<Line> line;
	
	public Face(){}
}


public class Line {
	private Sting name;
	private ArrayList<Point> point;
	
	public Line(){}
}

public class Point {
	private Sting name;
	private double x;
	private double y;
	
	public Point(){}
}
 
Zuletzt bearbeitet:
B

bygones

Gast
Java:
public class Line {
    private Sting name;
    private ArrayList<Point> point;
    
    public Recipe(){}
}
das stimmt schonmal nicht... was macht [c]Recipe[/c] da ?

ansonsten musst du definieren, wann 2 Punkte bzw wann 2 Linien gleich sind (methode equals).

dann stellst du in der Face klasse bzw Linie klasse eine Methode bereit ala [c]contains(Point p)[/c] oder [c]contains(Linie l)[/c] die durch deine Listen iteriert und jedes Element in der liste mit dem Parameter vergleicht.
 
G

Gast2

Gast
Sorry aber du schreibts ziemlichen Quatsch:

Ich habe drei Klassen, Face, Line und Point. Wie zu sehen ist Point eine ArrayList von Line
Nein. Line enthält eie ArrayList von Points. Und selbst das ist Quatsch, da eine Linie von 2 und zwar GENAU 2 Punkten definiert wird.

und Line eine ArrayList von Face.
Genauso falsch, da ein Face eine ArrayList von Lines ENTHÄLT.

Nun würde ich gerne eine Methode realisieren, in der ich herausbekomme ob Point in der ArrayList von Line enthalten ist oder ob Line in der ArrayList von Face enthalten ist. Als Rückgabewert sollten z.B. die Line's zurückgegeben werden, welche den jeweiligen Punkt enthalten.

Versuch mal die Methode contains(Object o) auf den ArrayLists. Allerdings vergleicht das nur auf Identität der Objekte! Wenn du Wertgleiche Objekte finden möchtest, musst du die Methode selber schreiben und über dei nArray iterieren und dann vergleichen. Weiss nicht genau was du vorhast. [edit]Bygones hats ja schon erklärt. Zu langsam[/edit]
 

schildi

Neues Mitglied
Sorry bygones wegen der
Java:
Recipe
, ich hatte die Bestätigungsemail des Forums noch nicht angeklickt und konnte den Post deswegen noch nicht ändern.

Sorry kappesf das ich die Sache mit den ArrayList verdreht habe.

soweit mit dem equals verstehe ich, gehe ich bei dem iterieren bzw. dem contains(Object o) folgend vor?

sollte contains in etwa so aussehen?

Java:
public boolean contains (Point c){

	return point.contains(c);

	}

bzw. so?

Java:
public boolean contains (Point c){
		boolean boolcontain = false;

		for(Point b: point) {
  			if (b.equals(c))
   		 boolcontain = true;
		}

		return boolcontain;
	}


Java:
public class Line {
	private Sting name;
	private ArrayList<Point> point;
	
	public Line(){}

	public boolean contains (Point c){

	........

	}	

}

public class Point {
	private Sting name;
	private double x;
	private double y;
	
	public Point(){}

	public Point(name n, double x, double y){
	this.name = name;	
	this.x = x;
	this.y = y;
	}

	public String getName(){
		return this.name;
	}

	public double getX(){
		return this.x;
	}

	public double getY(){
		return this.y;
	}

	public boolean equals(Point a){
		return name==a.getName && x==a.getX && y==a.getY;
	}
}
 
Zuletzt bearbeitet:

Neue Themen


Oben