我正在为我的学校机器人俱乐部编写一个机器人,并且需要一种将对象组织成对的方法。该代码使用两个螺线管对象来表示一个延伸缩回的螺线管,我想将这两个物体放入一对“跟踪”中,因为我将处理大量的螺线管物体。现在来自C ++的长背景,我会使用一个结构,甚至更好的默认STL对。 我应该使用什么样的数据结构来组织对象?。我对Java很新,所以我很感兴趣,如果有更好的东西可以使用,而不仅仅是一个类。
答案 0 :(得分:5)
请注意,在C ++中,您可以轻松地使用类来表示一对。由于Java只有类,因此这是您唯一的选择。换句话说,如果您愿意,您可以轻松地滚动自己的Pair类。您甚至可能需要一个表示此配对的自定义类,但也定义了该对中两个对象之间的确切交互。
或者,您可以使用java.util.Map。如果对中的元素之间存在某种映射语义(即该对是有序的),这尤其有用。
答案 1 :(得分:3)
我认为这不仅仅是“将它们保持在一起”。如果你的螺线管对有不同的行为(一个缩回,另一个伸出),我会说你需要一个超出Pair的新类型来实现它。它应该是具有正确行为的自定义类型(例如SolenoidPair
)。
答案 2 :(得分:1)
如果你想推出自己的Pair类:
public class Pair<X, Y> {
private final X x;
private final Y y;
public Pair(X x, Y y) {
this.x = x;
this.y = y;
}
public X getX() {
return x;
}
public Y getY() {
return y;
}
}
用过:
Pair<String, Integer> p = new Pair<String, Integer>("Heloo", 100);
你可能也想在那里扔些人!
但似乎可能有更好的方法来封装您的数据。在这个对类中包含更多的逻辑可能是一个更好的主意,并创建一个真实的对象,其中有一些更精确和适当的方法。
答案 3 :(得分:0)
考虑使用Apache Commons的Pair<L, R>
。