按特定值

时间:2015-07-13 21:20:05

标签: java arrays string arraylist

我在内部使用String数组迭代一个ArrayList。

["A","1"]
["A","2"]
["A","3"]
["B","1"]
["B","2"]
["B","3"]

我如何只选择带有" A"在第一个位置?没有迭代,并保存在新阵列上......

for (String[] key : keys){  
}

例如,对于每个使用a,我想要的是,对于第一次迭代 - >只能使用带有" A"的字符串数组,第二次迭代 - >只能使用带有" B"的字符串数组。

3 个答案:

答案 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