java - 将一个 ArrayList 中的对象添加到另一个 ArrayList

标签 java arraylist

我有 9 ArrayList s,我试图在某一特定点将它们全部浓缩为一个。

此时dotGridArrayList 的矩阵s,searchXsearchY只需指定哪个 ArrayList添加到 neighbours .

for(int searchX = sector[0] - 1; searchX < sector[0] + 2; searchX++){
  for(int searchY = sector[1] - 1; searchY < sector[1] + 2; searchY++){
    if(searchX >= 0 && searchX < 16 && searchY >= 0 && searchY < 16){
      neighbours.add(dotGrid[searchX][searchY]);
    }
  }
}

据我了解neighbours.addAll()应该可以,但事实并非如此。

我真的很努力地寻找,但一直没能找到满意的答案。

提前致谢

最佳答案

neighbours.add(dotGrid[searchX][searchY])

dotGrid是一个数组。通常,您无法实例化完全限定泛型类型的数组:

List<Double>[][] dotGrid = new List<Double>[n][];

将因类型错误而失败,因此我假设 dotGrid已部分输入?

List[][] dotGrid;

这意味着 addAll(dotGrid[searchX][searchY])将会失败,因为您试图添加 List 的所有元素到 List<Double> .

理想情况下,您不会将对象数组与通用列表混合在一起,而是重新定义 dotGrid成为列表列表的列表:

List<List<List<Double>>> dotGrid;

如果这不起作用,您可以尝试@SuppressWarning("unchecked")确保dotGrid实例化后具有完全限定的类型,或者执行类似以下操作

@SuppressWarning("unchecked")
List<Double> cell = (List<Double>) dotGrid[searchX][searchY];
neighbours.addAll(cell);

关于java - 将一个 ArrayList 中的对象添加到另一个 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8777611/

相关文章:

Java - 解释对象文件

java - Libgdx 中奇怪的缩放

java - 当请求到达 Tomcat 服务器时会发生什么?

java - 为什么我在使用 Google App Engile 的端点插入数据时在 Android 中出现错误?

java - 如何将jsp页面中的多个(数量是动态的)字段绑定(bind)到 Controller ?

java - 使用多个元素名称反序列化的简单 xml 框架

java - JComboBox 中的 List<String> 数组

java - 从字符串中删除字符

java - 使用 Java 流检查 ArrayList 内容

java - 代码运行但给我 java.util.Arrays$ArrayList 无法转换为 java.util.ArrayList