Я создал орграф с помощью библиотеки jgrapht, и мои вершины — это Point
объекты:
public static class Point {
public int x;
public int y;
public String type;
public Point(int x, int y, String type)
{
this.x = x;
this.y = y;
this.type = type;
}
@Override
public String toString() {
return ("[x="+x+" y="+y+" type="+type+ "]");
}
@Override
public int hashCode() {
int hash = 7;
hash = 71 * hash + this.x;
hash = 71 * hash + this.y;
return hash;
}
@Override
public boolean equals(Object other)
{
if (this == other)
return true;
if (!(other instanceof Point))
return false;
Point otherPoint = (Point) other;
return otherPoint.x == x && otherPoint.y == y;
}
}
Я могу пройтись по всем своим вершинам и получить преемника каждой точки следующим образом:*
for (Point myPoint : directedGraph.vertexSet ()) {
for (Point successor : Graphs.successorListOf (directedGraph, myPoint)){
// Add if statement
}
}
Мне нужно определить условия оператора if парами, но только для одного или двух параметров Point. Например, это мои точки:
public static Point startPoint = new Point(2, 6, "A");
public static Point firstPoint = new Point(2, 7, "A");
public static Point secondPoint = new Point(2, 8, "B");
public static Point thirdPoint = new Point(2, 9, "B");
public static Point fourthPoint = new Point(2, 10, "B");
public static Point fifthPoint = new Point(3, 7, "C");
public static Point sixthPoint = new Point(4, 7, "C");
public static Point seventhPoint = new Point(5, 7, "C");
Я хотел бы иметь условие, чтобы быть уверенным, что myPoint и преемник не имеют определенного «типа»:
for (Point myPoint : directedGraph.vertexSet ()) {
for (Point successor : Graphs.successorListOf (directedGraph, myPoint)){
if ((myPoint,successor) != (myPoint.type.equals("A"), successos.type.equals("B") && (myPoint,successor)!= (myPoint.type.equals("A"), successos.type.equals("C")){
// Do what I want
}
}
}
Итак, мне нужно поставить условие на пару точек, но только на один параметр моих Point
объектов [пара (myPoint и преемник) не может быть соответственно (тип A и тип B) и (тип A и типа С).
Возможно ли это сделать таким образом? Я не смог найти никаких ресурсов по этому поводу (и у меня возникли проблемы с формулировкой моего вопроса, поэтому это не помогло)