输入到ArrayList Java的int列表

Benniesmalls

我需要将这些值添加到ArrayList中,因为它们必须彼此连接并且同时需要可移除。我脑海中的矛盾与海战有些相似。我有一些需要点击的框。当您单击其中之一时,该框将变为绿色。当您单击所有配对的框时,它们会变成金色框。

我的问题是:是否有更流畅,更轻松的方法将以下值添加到ArrayList中?我尝试了一些forloop,但是都没有用;

ArrayList[][] Boxes = new ArrayList[6][];
  
   Boxes[0][0].add(1110);
   Boxes[0][1].add(1210);
   Boxes[0][2].add(1310);
   Boxes[0][3].add(1410); 
   
   Boxes[1][0].add(2110);
   Boxes[1][1].add(2210);
   Boxes[1][2].add(2310);
   
   Boxes[2][0].add(2121);
   Boxes[2][1].add(2221);
   Boxes[2][2].add(2321);
   
   Boxes[3][0].add(3110);
   Boxes[3][1].add(3210);
   
   Boxes[4][0].add(3120);
   Boxes[4][1].add(3220);
   
   Boxes[5][0].add(3130);
   Boxes[5][1].add(3230);
亚历克斯·鲁登科

如果您提供了一个辅助方法来构建列表数组,则初始化可能会被压缩:

// warning about rawtypes
private static ArrayList[] buildArrayOfLists(Integer... arr) {
    return Arrays.stream(arr)
                 .map(i -> new ArrayList<>(Arrays.asList(i)))
                 .toArray(ArrayList[]::new);
}

// usage -- warning about rawtypes
ArrayList[][] boxes = new ArrayList[][] {
      buildArrayOfLists(1110, 1210, 1310, 1410),
      buildArrayOfLists(2110, 2210, 2310),
      buildArrayOfLists(2121, 2221, 2321),
      buildArrayOfLists(3110, 3210),
      buildArrayOfLists(3120, 3220),
      buildArrayOfLists(3130, 3230)
};

Arrays.stream(boxes)
      .map(Arrays::toString)
      .forEach(System.out::println);

输出:

[[1110], [1210], [1310], [1410]]
[[2110], [2210], [2310]]
[[2121], [2221], [2321]]
[[3110], [3210]]
[[3120], [3220]]
[[3130], [3230]]

更新
为了摆脱关于使用原始类型的警告,ArrayList[][]并使用常规List而不是特定的实现,可以以更安全且无警告的方式重构方法及其用法:

private static <T> List<?>[] arrayOfLists(T... arr) {
    return Arrays.stream(arr)
                 .map(i -> new ArrayList<>(Arrays.asList(i)))
                 .toArray(List<?>[]::new);
}

// usage - no warning about rawtypes, explicitly suppress unchecked
@SuppressWarnings("unchecked")
List<Integer>[][] safeBoxes = (List<Integer>[][]) new List<?>[][] {
      arrayOfLists(1110, 1210, 1310, 1410),
      arrayOfLists(2110, 2210, 2310),
      arrayOfLists(2121, 2221, 2321),
      arrayOfLists(3110, 3210),
      arrayOfLists(3120, 3220),
      arrayOfLists(3130, 3230)
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章