我有一个这样的清单:
["hi","hello","one"]
["hi","hello1","two"]
["hi1","hello3","three"]
是否有更有效的方法来计算字符串数" hi"在其中除了循环之外,结果是 2 ?像listCount()
?
答案 0 :(得分:3)
您可以使用Java 8流:
long count = strings.stream()
.flatMap(List::stream)
.filter(Predicate.isEqual("hi"))
.count();
...假设你有一个strings
变量:
List<List<String>> strings = asList(asList("hi", "hello", "one"),
asList("hi", "hello1", "two"),
asList("hi1", "hello3", "three"));
如果你有嵌套数组,你仍然可以使用流,但你必须调整上面的代码。
如果您的列表很大,您可以通过使用strings.parallelStream()
而不是strings.stream()
启动流来加快速度,这将确保您的可用内核用于并行处理。