Android Studio使用Java提取2D数组每行首个元素失败如何解决
错误原因
你的代码触发了数组越界异常:Java数组索引从0开始,长度为n的数组有效索引范围是0 ~ n-1,你写的循环条件i <= items.length会让i最后遍历到items.length这个不存在的索引位,自然运行失败。
修复代码
普通写法(兼容所有Java版本)
ArrayList<String> data = new ArrayList<>(); // 把 <= 改成 < 即可,也可以把i++移到for循环括号里更符合常规写法 for (int i = 0; i < items.length; i++) { data.add(items[i][0]); }
Java 8+ 流简化写法
import java.util.ArrayList; import java.util.Arrays; import java.util.stream.Collectors; // ... ArrayList<String> data = Arrays.stream(items) .map(subArray -> subArray[0]) .collect(Collectors.toCollection(ArrayList::new));
两种写法运行后得到的data就和你预期的结果完全一致。
内容的提问来源于stack exchange,提问作者Daniel Mohajer
相关产品推荐
相关产品推荐

