Java 是否存在同时具有ArrayList和Map-like属性的数据结构?

Java 是否存在同时具有ArrayList和Map-like属性的数据结构?,java,arrays,map,arraylist,multidimensional-array,Java,Arrays,Map,Arraylist,Multidimensional Array,我有一系列的数据,每一个其他值都与它前面的值配对 2356889125 例如,其中2将用3写出,5将用6写出(作为指数,但这并不真正相关) 我不确定行中会有多少个值,所以我想使用ArrayList,但我需要链接它们。我希望2以2D数组的样式与3关联 我不能使用地图,因为它们的键可能会在整个地方重复,所以键/值关联不会有任何独特的特征。我只需要一个可扩展的2D数组,我不确定我能从HashMap、ArrayList、2D数组或我知道的任何其他数据结构中得到它 有什么建议吗 编辑: 为了澄清,这将代表

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

2356889125
例如,其中2将用3写出,5将用6写出(作为指数,但这并不真正相关)

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

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

有什么建议吗

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

为什么不创建一个类来将这两个数字放在一起呢?然后,您可以使用
列表
保存所有数据

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


由于您需要排序,您可以使
结对
实现,或者创建一个用于组织数据的类。

为什么不创建一个类将两个数字放在一起呢?然后,您可以使用
列表
保存所有数据

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


因为您需要排序,所以您可以使
结对
实现,或者创建一个用于组织数据的数组。

构造一个
数组列表
,其中每个
整数[]
的长度为2。
ArrayList
是可扩展的,允许使用
.get(index1)[index2]
访问一对元素

构造一个
ArrayList
,其中每个
整数[]
的长度为2。
ArrayList
是可扩展的,允许使用
.get(index1)[index2]
访问一对元素

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

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;
    }
}
例如,如果您的线条看起来像:

1 2 1 3 2 4 2 5 3 6
地图看起来像:

{ 1 -> [2, 3], 2 -> [4, 5], 3 -> [6] }

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

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

1 2 1 3 2 4 2 5 3 6
地图看起来像:

{ 1 -> [2, 3], 2 -> [4, 5], 3 -> [6] }

你期望代表的最高指数是什么?所有指数都是整数吗?是的,所有指数都是整数,我想它可能会非常高,但我不会假设超过20个。你能用一个21个数字的数组,每个指数一个数字吗?未使用的指数在该数组中为零,因此您不会打印它们。保持对的顺序很重要吗?您希望表示的最高指数是多少?所有指数都是整数吗?是的,所有指数都是整数,我想它可能会非常高,但我不会假设超过20个。你能用一个21个数字的数组,每个指数一个数字吗?未使用的指数在该数组中为零,因此您不会打印它们。维护对的顺序是否重要?我是在评论comparator,您添加了xD+1i是在评论comparator,您添加了xD+1C,然后您可以按Integer[]中的两个值之一对ArrayList进行排序吗?是;使用
Collections.sort
(如@Jeffrey所述)<代码>集合.sort(yourArrayList,new Comparator(){public int compare(Integer[]a,Integer[]b){返回a[indOfExponent]-b[indOfExponent];//或b[indOfExponent]-a[indOfExponent]})编辑:请原谅格式错误;将c+p代码输入编辑器。然后,能否按整数[]内的两个值之一对ArrayList进行排序?是;使用
Collections.sort
(如@Jeffrey所述)<代码>集合.sort(yourArrayList,new Comparator(){public int compare(Integer[]a,Integer[]b){返回a[indOfExponent]-b[indOfExponent];//或b[indOfExponent]-a[indOfExponent]})编辑:请原谅格式错误;将c+p代码导入编辑器。