我在内部使用String数组迭代一个ArrayList。
["A","1"]
["A","2"]
["A","3"]
["B","1"]
["B","2"]
["B","3"]
我如何只选择带有" A"在第一个位置?没有迭代,并保存在新阵列上......
for (String[] key : keys){
}
例如,对于每个使用a,我想要的是,对于第一次迭代 - >只能使用带有" A"的字符串数组,第二次迭代 - >只能使用带有" B"的字符串数组。
答案 0 :(得分:2)
试试这个:
String[][] keys = {
{"A","1"},
{"A","2"},
{"A","3"},
{"B","1"},
{"B","2"},
{"B","3"},
};
String[][] result = Stream.of(keys)
.filter(x -> x[0].equals("A"))
.toArray(String[][]::new);
System.out.println(Arrays.deepToString(result));
答案 1 :(得分:0)
您是否在寻找使用Java 8的解决方案?
List<String[]> result = keys.stream()
.filter(t -> "A".equals(t[0]))
.collect(Collectors.toList());
答案 2 :(得分:-1)
你不能不经历每一个(迭代或并行)。但你可能想要一张地图。检查一下:http://docs.oracle.com/javase/7/docs/api/java/util/Map.html