字符串列表获取一个没有循环的项目

Joy*_*y16 5 java collections arraylist

我有一个包含数千个数据的数组列表.

例如:

List<String> custNames = new ArrayList<String>();
custNames.add("John");
custNames.add("Tom");
custNames.add("Bart");
custNames.add("Tim");
custNames.add("Broad");
Run Code Online (Sandbox Code Playgroud)

现在我想得到只以'T'开头的名字数.我使用循环机制来解决我的问题.

List<String> filterNames = new ArrayList<String>();
String nameStarts="T";
for(int i=0;i<custNames.size();i++)
{
    if(custNames.get(i).toLowerCase().startsWith(nameStarts.toLowerCase()))
    {
        filterNames.add(custNames.get(i));
    }
}
System.out.println(filterNames.size());
Run Code Online (Sandbox Code Playgroud)

但是我在这个custNames列表中有非常大的数据集合.没有使用循环有没有不同的解决方案?

谢谢.

Kus*_*han 5

Java 8为您的问题提供了非常好的解决方案.

试试这个,

long filterNameCount = custNames
        .stream()
        .parallel() 
        .filter((s) -> s.startsWith(nameStarts.toLowerCase()))
        .count();

System.out.println(filterNameCount);
Run Code Online (Sandbox Code Playgroud)