1

我正在为我的学校机器人俱乐部编写一个机器人,并且需要一种将对象组织成对的方法。该代码使用两个螺线管对象来表示一个螺线管伸出一个缩回,我想将这两个对象放入“对”中以进行跟踪,因为我将处理很多螺线管对象。现在来自 C++ 的长期背景,我会为此使用结构,或者甚至更好地使用默认的 STL 对。我应该使用什么样的数据结构来组织对象对?. 我对 Java 还很陌生,所以如果有什么比一个类更好用的话,我很感兴趣。

4

4 回答 4

5

请注意,在 C++ 中,您可以很容易地使用一个类来表示一对。由于 Java 只有类,所以这是您唯一的选择。换句话说,如果您愿意,您可以轻松推出自己的 Pair 课程。您甚至可能需要一个自定义类来表示这种配对,但也可以定义配对中两个对象之间的确切交互。

或者,您可以使用 java.util.Map。如果一对中的元素之间存在某种映射语义(即对是有序的),这将特别有用。

于 2013-01-14T23:34:33.453 回答
3

我认为这不仅仅是“让他们在一起”。如果您的螺线管对具有不同的行为(一个缩回,另一个伸出),我会说您需要一种超越 Pair 的新类型来实现它。它应该是SolenoidPair具有适当行为的自定义类型(例如)。

于 2013-01-14T23:34:08.647 回答
2

如果您想推出自己的 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);

你可能也想在里面放一些二传手!

但似乎可能会有更好的方法来封装您的数据。将更多的逻辑包装在这个对类中并创建一个真实的对象可能是一个更好的主意,其中包含一些更精致和更合适的方法。

于 2013-01-14T23:36:16.017 回答
0

考虑使用Pair<L, R>Apache Commons。

于 2013-01-14T23:31:57.047 回答