虽然我不太肯定这背后你的逻辑,我假设你想是这样的:
public class Planes {
private Map<String, Plane> planes;
public Planes() {
this.planes = new HashMap<String, Plane>();
}
public boolean contains(Plane plane) {
return this.planes.contains(plane.getId());
}
public void add(Plane plane) {
this.planes.put(plane.getId(), plane);
}
}
public class SomePlaneRelatedClass {
private Planes planes;
public SomePlaneRelatedClass() {
this.planes = new Planes();
...
}
...
public void land(Plane plane) {
if (!this.planes.contains(plane)) {
plane.setId(/* some generated ID */);
this.planes.add(plane);
}
}
}
}
一个评论,虽然。如果你想要如果你的收藏包含飞机,不要使用列表。
想象一下当你有很多飞机时,你正在查询最后一个飞机。它会遍历整个列表以找到它(时间复杂度为O(n)
)。而是使用地图将您的UUID映射到您的平面并通过UUID获取,这应该会更快(O(1)
)。
_some sort of trouble_你能有更具体一点吗? – Keppil
首先让我们知道发生了什么问题。 – Buddha
你的java代码在很多方面都是错误的。我们需要更多信息。例如,什么是“飞机”? ArrayList或者ArrayList ? –
Magus