【问题标题】:Adding int values to ArrayList of int's将 int 值添加到 int 的 ArrayList
【发布时间】:2019-10-24 23:24:39
【问题描述】:

我正在尝试将 int 值添加到 int[],如下所示。

 private ArrayList<int []> read_studioConfig(byte[] buf, int boundary, int offset, int num){

    ArrayList<int []> configs_values = new ArrayList<int[]>();

    int readValues = 0;

    int idx = offset;
    for (int i = 0 ;i < num; i++){
         while(idx < boundary && buf[idx] != 0){
             readValues = i;
             idx ++;
         }
         idx ++;

        configs_values.add(readValues);
    }

    return configs_values;
};

但我做不到。我收到以下错误。

错误:没有找到适合 add(int) 的方法 方法 Collection.add(int[]) 不适用 (参数不匹配;int 不能转换为 int[])方法 List.add(int[]) 不适用(参数不匹配;int 不能转换为 int[])**

我犯了一个愚蠢的错误,但无法解决。我在这里错过了什么?

【问题讨论】:

  • 我想你想要:ArrayList
  • 也就是说:现在您正在创建一个包含int 数组的数组列表。
  • @ErnieThomason 更改以解决问题。但我想添加值 arraylist of int 数组
  • Java 集合存储对象,而不是原始类型。要拥有二维数组,请使用 ArrayList&lt;ArrayList&lt;Integer&gt;&gt; arr = new ArrayList&lt;ArrayList&lt;Integer&gt;&gt;();
  • 如果要添加数组,传递数组,而不是ints。

标签: java arraylist


【解决方案1】:

首先,您要创建一个整数数组 List,这就是您的代码失败的原因。

我不确定您为什么要这样做,因为您的代码有点脏,但在这里您有我的建议:

使用List&lt;Integer&gt; configsValue = new ArrayList() 而不是ArrayList&lt;int[]&gt;,使用接口而不是实现。此外,如果您不需要保持直接访问,即使我建议您使用 LinkedList 而不是 ArrayList,因为添加新元素的复杂性是 O(1) 与 O(n)

那么您的代码将起作用,否则如果您想返回 List&lt;int[]&gt;,请注意您必须先创建数组,然后再将其添加到集合中

【讨论】:

  • 这清楚了很多。我会朝那个方向看的人。谢谢
猜你喜欢
  • 2015-08-16
  • 1970-01-01
  • 2018-12-09
  • 1970-01-01
  • 1970-01-01
  • 2023-01-31
  • 2013-05-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多