【问题标题】:Adding an int[] to a dynamic array such as Array List将 int[] 添加到动态数组,例如 Array List
【发布时间】:2014-11-25 15:22:48
【问题描述】:

正如标题所暗示的那样,我正在寻找一种方法来将填充了可以是 x 长度的信息的数组添加到不断增长的数组列表中。

我已经完成了我的研究,似乎如果我选择将数组放入数组列表中,那么它将是列表中原始数组的各个值,而我希望将整个数组放入数组列表中。

我知道这很难理解,所以请参阅下文。

假设我们通过我的应用程序的第一个循环并生成以下数组

{1,2,3,4}
{5,6,7,8}

如果我把它放到一个 Arraylist 中,它将如下

1
2
3
4
5
6
7
8

但是我想要它如下

{1,2,3,4}
{5,6,7,8}
and so on...

原因是因为我想存储数组,以便我的程序测试循环时存储的每个数组的值。

这在 Java 中可能吗?我敢肯定,但我只是错过了一些东西!

【问题讨论】:

    标签: java arrays list integer int


    【解决方案1】:

    如果事先知道产生的数组个数,就可以使用二维数组。

    示例

    int[] first = {1,2,3,4};
    int[] second = {5,6,7,8};
    int[][] all = new int[2][];
    all[0] = first;
    all[1] = second;
    System.out.println(Arrays.deepToString(all));
    

    输出

    [[1, 2, 3, 4], [5, 6, 7, 8]]
    

    否则,只需使用ArrayList<int[]>,但这很难看 - 见下文。

    示例

    int[] first = {1,2,3,4};
    int[] second = {5,6,7,8};
    List<int[]> all = new ArrayList<int[]>();
    all.add(first);
    all.add(second);
    // no nice String representation here as Arrays.toString not explicitly invoked
    System.out.println(all);
    

    输出

    [[I@466e466e, [I@46734673]
    

    最终的最佳解决方案,使用ArrayList&lt;ArrayList&lt;Integer&gt;&gt;

    示例

    // cannot use primitive arrays in this context without tedious iteration
    Integer[] first = {1,2,3,4};
    Integer[] second = {5,6,7,8};
    List<List<Integer>> all = new ArrayList<List<Integer>>();
    all.add(Arrays.asList(first));
    all.add(Arrays.asList(second));
    System.out.println(all);
    

    输出

    [[1, 2, 3, 4], [5, 6, 7, 8]]
    

    最后说明

    您可能还想查看Map API,看看Map&lt;Object, List&lt;Integer&gt;&gt; 或什至只是Map&lt;Integer, Integer&gt; 是否更适合您的数据需求。

    【讨论】:

    • 不,我认为这不是问题的解决方案,它可以通过并产生 x 数量的数组...这就是我选择列表数组的原因,因为它需要是动态的.
    • 至于 ArrayList 会有什么不同呢?它仍然会列出,不是吗?是的,我相信列表中的列表是迄今为止最好的解决方案,我会等着看其他人的观点,但会选择那个。
    【解决方案2】:

    为什么没有列表列表?将数组转换为列表很容易,然后您将拥有:

    List&lt;List&lt;Integer&gt;&gt; list = new ArrayList&lt;List&lt;Integer&gt;&gt;();

    编辑:

    假设您有一个名为myArray 的数组。您添加到上面声明的列表如下:

    list.add(Arrays.asList(myArray));

    对多个数组执行此操作,您将拥有一个包含多个单独列表的 List,例如:

    {1, 2, 3}, {4, 5, 6}, ... 等等

    【讨论】:

    • 好的,对不起,我是 java 新手。输出会是什么说我向其中添加了两个数组,它会像我在我的问题中的内容还是只是一个具有内部列表的列表?所以我们添加 {1,2} 和 {3,4} ' - 1 2 - 3 4 ' 对吗?
    • 首先,您不会添加数组而是添加列表。如果您将多个列表添加到一个列表中,您将拥有一个包含多个列表的列表。给我 2 分钟,检查我的编辑。
    猜你喜欢
    • 1970-01-01
    • 2022-07-14
    • 2019-10-13
    • 2011-08-06
    • 1970-01-01
    • 1970-01-01
    • 2020-12-07
    • 2019-03-18
    • 1970-01-01
    相关资源
    最近更新 更多