Storing number pairs in java
如何在java中存储一组配对数字? 我是使用列表或数组还是其他东西?
例如。 [(1,1),(2,1),(3,5)]
有几个选择:
编写自定义IntPair类
1 2 3 4 5 6 7 8 | class IntPair { // Ideally, name the class after whatever you're actually using // the int pairs *for.* final int x; final int y; IntPair(int x, int y) {this.x=x;this.y=y;} // depending on your use case, equals? hashCode? More methods? } |
然后创建
或者,创建一个二维数组
由于某些原因,Java没有内置的
如果我们更多地了解您实际使用它的内容,我们可能会提供更详细的建议 - 我们知道,
你可以使用班级配对!
1 2 3 4 5 6 7 |
我希望这可以帮助你!
如果你需要避免重复,那么HashSet将是一个不错的选择,但它不是一个ArrayList可以工作。
1 2 3 4 5 | Class IntPair(){ int i; int j; } HashSet<IntPair> set = new HashSet<IntPair>(); |
要么
1 | ArrayList<IntPair> list = new ArrayList<IntPair>(); |
如果您可以使用低级结构并且迫切需要紧凑形式的"文字"形式的"一对" - 在单元测试中我会遇到这种情况,当我需要一组灯具时 - 您可以简单地使用一个数组数组:
1 2 3 4 5 | int[][] squares = { { 1, 1 }, { 2, 4 }, { 3, 9 } }; |
但请记住,这样的类型没有语义 - 这一切都取决于正确使用,如果您在真正想要
1 2 3 4 5 6 7 8 9 10 11 | class Pair< T > { T p1, p2; Pair(T p1, T p2) { this.p1 = p1; this.p2 = p2; } Pair<Integer> pair = new Pair<Integer>(1,2); int i1 = pair.p1; int i2 = pair.p2; |
您还可以输入getter,setter,equals,hashcode等。