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列表中有非常大的数据集合.没有使用循环有没有不同的解决方案?
谢谢.
Java 8为您的问题提供了非常好的解决方案.
试试这个,
long filterNameCount = custNames
.stream()
.parallel()
.filter((s) -> s.startsWith(nameStarts.toLowerCase()))
.count();
System.out.println(filterNameCount);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1013 次 |
| 最近记录: |