介绍:一般在Java中,我们会使用Stream来完成对数据的采集和操作,也可以通过Stream来完成对文件的读写,所以Stream是Java基础中非常重要的一个类。
操作目的:输入字符串,将所有字符小写,找到字母j的个数并输出。
如果你学过lambda表达式请看这个(不会就看第二个):
@Test
public void StreamCollectData() throws Exception {
List<String> all = new ArrayList<String>(); // 实例化List集合
Collections.addAll(all, "Java", "JavaScript", "JSP",
"Json", "Python", "Ruby", "Go"); // 集合数据保存
Stream<String> stream = all.stream(); // 获取Stream接口对象
// 将每一个元素全部变为小写字母,而后查询是否存在有字母“j”,如果存在则进行个数统计
System.out.println(stream.filter(ele ->
ele.toLowerCase().contains("j")).count());
//filter()方法中可以使用Predicate即可以写一个lambda表达式
}
使用了两个基础Java不常用的使用方法:
实现集合数据的保存
(1) Collections.addAll(集合名字,需要添加的参数...)
集合转stream
(2)集合对象名.stream()
Stream进行数据采集,返回值为筛选后结果
(3)stream.filter(lambda表达式)
如果你不会lambda表达式(两种写法是等价的):
System.out.println(stream.filter(new Predicate<String>() {
@Override
public boolean test(String s) {
return s.toLowerCase().contains("j");
}
}).count());