Java中如何将ArrayList<int[]>转换为int[][]类型
Java中ArrayList<int[]>转int[][]的实现方案
方案1:ArrayList内置方法转换(性能最优)
Java 8及以上版本可以直接调用ArrayList的toArray方法,传入二维数组的构造方法引用即可完成转换,无额外性能开销:
return result.toArray(int[][]::new);
方案2:基于Stream流实现
如果需要在转换前执行过滤、映射等处理逻辑,可以使用流方式实现:
return result.stream().toArray(int[][]::new);
中间可以插入任意流处理逻辑,比如过滤不符合长度要求的数组:
return result.stream() .filter(item -> item.length == 4) .toArray(int[][]::new);
完整示例代码
补全后你的方法可以直接写成如下形式:
public static int[][] findFarmland(int[][] land) { var result = new ArrayList<int[]>(); /** * 此处为查找农田的业务逻辑实现 */ // 直接调用内置方法转换返回,性能最优 return result.toArray(int[][]::new); }
低版本Java兼容方案
如果使用Java 7及以下版本,需要手动遍历赋值:
public static int[][] findFarmland(int[][] land) { ArrayList<int[]> result = new ArrayList<int[]>(); /** * 此处为查找农田的业务逻辑实现 */ int[][] resArray = new int[result.size()][]; for (int i = 0; i < result.size(); i++) { resArray[i] = result.get(i); } return resArray; }
内容的提问来源于stack exchange,提问作者Kotbi Abderrahmane
相关产品推荐
相关产品推荐

