0

我有一系列数据,每个其他值都与它之前的值配对。

2 3 5 6 8 9 12 5
例如,2 将与 3 一起写出,5 与 6 一起写出(作为指数,但这并不真正相关)。

我永远不确定一行中有多少个值,所以我想使用一个 ArrayList,但我需要将它们链接起来。我希望 2 以 2D 数组的样式与 3 相关联。

我不能使用地图,因为它们的键可能会在整个地方重复,因此键/值关联不会有任何独特的特征。我只需要一个可扩展的二维数组,我不确定我是否可以从 HashMap、ArrayList、二维数组或我知道的任何其他数据结构中得到它。

任何指针?

编辑:为了澄清,这将代表 2 ^ 3 5 ^6 8 ^ 9 等,我最终希望以可读的形式打印出来,我还需要按最高指数值排序。所以我需要对它们进入数据结构的顺序进行一些控制。

4

3 回答 3

4

为什么不创建一个类来将两个数字放在一起呢?然后您可以使用 aList<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

由于您需要排序,您可以制作PairimplementComparable<Pair>或创建一个Comparator<Pair>以便您可以Collections.sort用来组织数据。

于 2013-07-12T01:36:10.760 回答
0

如果顺序不重要,您可以有一个列表映射,其中映射键是基数,列表中的每个项目都是基数提升到的指数之一。

例如,如果您的线路看起来像:

1 2 1 3 2 4 2 5 3 6

地图看起来像:

{ 1 -> [2, 3], 2 -> [4, 5], 3 -> [6] }
于 2013-07-12T05:24:37.083 回答
0

构造一个ArrayList<Integer[]>,其中 eachInteger[]的长度为 2。ArrayList' 是可扩展的,并允许使用 访问一对元素.get(index1)[index2]

于 2013-07-12T03:03:30.273 回答