Java 按特定值迭代字符串数组

Java 按特定值迭代字符串数组,java,arrays,string,arraylist,Java,Arrays,String,Arraylist,我正在迭代一个包含字符串数组的ArrayList ["A","1"] ["A","2"] ["A","3"] ["B","1"] ["B","2"] ["B","3"] 如何仅选择第一个位置上有“A”的位置?无需迭代并保存在新数组上 for (String[] key : keys){ } 例如,使用a for each,我想要的是,对于第一次迭代->仅使用带有“a”的字符串数组,第二次迭代->仅使用带有“B”的字符串数组 不经过每一步(迭代或并行)就无法完成。但你可能想要张地图。检查此

我正在迭代一个包含字符串数组的ArrayList

["A","1"]
["A","2"]
["A","3"]
["B","1"]
["B","2"]
["B","3"]
如何仅选择第一个位置上有“A”的位置?无需迭代并保存在新数组上

for (String[] key : keys){  
}

例如,使用a for each,我想要的是,对于第一次迭代->仅使用带有“a”的字符串数组,第二次迭代->仅使用带有“B”的字符串数组

不经过每一步(迭代或并行)就无法完成。但你可能想要张地图。检查此项:

尝试以下操作:

    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));

您正在寻找使用Java8的解决方案吗

List<String[]> result = keys.stream()
                            .filter(t -> "A".equals(t[0]))
                            .collect(Collectors.toList());
List result=keys.stream()
.filter(t->“A”。等于(t[0]))
.collect(Collectors.toList());

Guava有这样的工具,但实际上,您似乎想要一个多重映射。我可以在JSP中使用Java 8吗?是的。它取决于应用服务器。您是将Tomcat8还是Wildfly与JDK8一起使用?你正在使用什么应用服务器?