我有一个有两个端口的连接器。两个端口有一个共同的根作为 Resource
。我试图找到这两个端口的公共(public)根。
我需要一个端口(p1)的一组元素,可以通过 getParent
方法找到它。对于另一个端口 (p2),我需要检查集合中是否存在任何 p2 元素。虽然我需要这个方法来返回一个 Resource
类型的对象,但我在这一点上有点卡住了。我收到以下错误。
private Element findCommonRoot(Connector connector)
{
List<Port> portList = getListOfPort(connector);
Port p1 = portList.get(0);
Set<Element> portElementSet = new TreeSet<Element>();
Element pathElement = p1.getParent();
while (pathElement != null)
{
portElementSet.add(pathElement);
pathElement = pathElement.getParent();
}
Port p2 = portList.get(1);
Element pathElement2 = p2.getParent();
for(Element e: portElementSet)
{
if(portElementSet.contains(pathElement2))
pathElement2 = e;
}
return pathElement2;
}
最佳答案
如果不需要对元素进行排序,请使用 HashSet
代替 TreeSet
。 HashSet
未排序,不需要元素进行比较。