java 根据字符串数组中的值筛选字符串数组列表

1u4esq0p  于 2022-12-21  发布在  Java
关注(0)|答案(1)|浏览(182)

我有一个字符串数组的列表,我从csv文件中阅读,我想使用Java过滤。我想检索包含特定值的整个字符串数组。

List<String[]> csvData = readAllData("src/test/resources/data.csv", ';');

打印后的输出:

[24, Desnoyers Claude, 1030311841077]
[25, Doiron Fletcher, 1680375680748]
[63, Mainville Agathe, 2680408184680]
[363, Pinette Searlas, 1940914809627]

例如,我想检索包含特定名称的整个数组,如Doiron弗莱彻,而不管其索引如何。我知道我可以在Java 8中使用流,但我对Java相当陌生,不知道如何对字符串数组列表执行流。

3htmauhk

3htmauhk1#

您可以了解“name”是数组的第二个元素。
在Java 17之前:

List<String[]> filteredData = csvData.stream()
        .filter(item -> "Doiron Fletcher".equals(item[1]))
        .collect(Collectors.toList()));

Java 17+:

List<String[]> filteredData = csvData.stream()
        .filter(item -> "Doiron Fletcher".equals(item[1]))
        .toList());

或者,如果您只需要一行(例如第一行):

String[] foundRow = csvData.stream()
        .filter(item -> "Doiron Fletcher".equals(item[1]))
        .findFirst().orElse(null);

相关问题