我有一系列数据,其他每个值都与之前的值配对。
2 3 5 6 8 9 12 5
例如,2将被写出3和5写出与6(作为指数,但这不是真正相关)。
我永远不会确定该行中有多少个值,所以我想使用一个ArrayList,但我需要将它们链接起来。我想让2与2D阵列的风格相关联。
我无法使用地图,因为它们的键可能会遍布整个地方,因此不会有关键/值关联的任何独特特征。我只需要一个可扩展的2D数组,我不确定我能从HashMap,ArrayList,2D数组或我知道的任何其他数据结构中得到它。
任何指针?
编辑: 为了澄清,这将代表2 ^ 3 5 ^ 6 8 ^ 9等,我想最终以可读的形式打印,我还需要按最高指数值排序。所以我需要控制它们进入数据结构的顺序。
答案 0 :(得分:4)
为什么不创建一个将两个数字组合在一起的类?然后,您可以使用List<Pair>
来保存所有数据。
public class Pair {
private final int a;
private final int b;
public Pair(int a, int b) {
this.a = a;
this.b = b;
}
public int getA() {
return a;
}
public int getB() {
return b;
}
}
/ E
由于您需要排序,您可以Pair
实施Comparable<Pair>
,也可以创建Comparator<Pair>
,这样您就可以使用Collections.sort
来整理数据。
答案 1 :(得分:0)
构建一个ArrayList<Integer[]>
,其中每个Integer[]
的长度为2. ArrayList
可扩展,并允许使用.get(index1)[index2]
访问一对元素。
答案 2 :(得分:0)
如果订单不重要,您可以拥有列表地图,其中地图键是基础,列表中的每个项目都是基数被提升到的指数之一。
例如,如果您的行看起来像:
1 2 1 3 2 4 2 5 3 6
地图看起来像:
{ 1 -> [2, 3], 2 -> [4, 5], 3 -> [6] }