我是靠谱客的博主 单纯哈密瓜,最近开发中收集的这篇文章主要介绍java8+stream+remove_java8 数据集过滤removeIf和filter,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

http://www.cnblogs.com/tiandi/p/11185236.html

对象如下,需求:只要30岁以下的人

//求职者的实体类

public class Person {

private String name;//姓名

private Integer age;//年龄

private String gender;//性别

...

//省略构造方法和getter、setter方法

...

//重写toString,方便观看结果

@Override

public String toString() {

return "Person{" +

"name='" + name + ''' +

", age=" + age +

", gender='" + gender + ''' +

'}';

}

}

1、使用Iterator的传统写法

Collection collection = new ArrayList();

collection.add(new Person("张三", 22, "男"));

collection.add(new Person("李四", 19, "女"));

collection.add(new Person("王五", 34, "男"));

collection.add(new Person("赵六", 30, "男"));

collection.add(new Person("田七", 25, "女"));

//过滤30岁以上的求职者

Iterator iterator = collection.iterator();

while (iterator.hasNext()) {

Person p = iterator.next();

if (p.getAge() >= 30)

iterator.remove();

}

System.out.println(collection.toString());//查看结果

2、不用lambda的removeIf写法

Collection collection = new ArrayList();

collection.add(new Person("张三", 22, "男"));

collection.add(new Person("李四", 19, "女"));

collection.add(new Person("王五", 34, "男"));

collection.add(new Person("赵六", 30, "男"));

collection.add(new Person("田七", 25, "女"));

collection.removeIf(new Predicate() {

@Override

public boolean test(Person p) {

return p.getAge()>=30;//过滤30岁以上的求职者

}

});

System.out.println(collection.toString());//查看结果

3、使用lambda的removeIf写法(只有一行了,哈哈)

Collection collection = new ArrayList();

collection.add(new Person("张三", 22, "男"));

collection.add(new Person("李四", 19, "女"));

collection.add(new Person("王五", 34, "男"));

collection.add(new Person("赵六", 30, "男"));

collection.add(new Person("田七", 25, "女"));

collection.removeIf(p -> p.getAge() >= 30);//过滤30岁以上的求职者

System.out.println(collection.toString());//查看结果

4、使用lambda的filter写法

Collection collection = new ArrayList();

collection.add(new Person("张三", 22, "男"));

collection.add(new Person("李四", 19, "女"));

collection.add(new Person("王五", 34, "男"));

collection.add(new Person("赵六", 30, "男"));

collection.add(new Person("田七", 25, "女"));

Stream personStream = collection.stream().filter(p -> p.getAge() < 30)).collect(Collectors.toList());

//由于使用了stream因此后面需要使用.collect(Collectors.toList())转换成list

System.out.println(collection.toString());//查看结果

下面是没有使用lambda的写法

Collection collection = new ArrayList();

collection.add(new Person("张三", 22, "男"));

collection.add(new Person("李四", 19, "女"));

collection.add(new Person("王五", 34, "男"));

collection.add(new Person("赵六", 30, "男"));

collection.add(new Person("田七", 25, "女"));

Stream personStream = collection.stream().filter(new Predicate() {

@Override

public boolean test(Person p) {

return p.getAge() < 30;//只保留男性

}

});

collection = personStream.collect(Collectors.toList());//将Stream转化为List

System.out.println(collection.toString());//查看结果

转载于:https://www.cnblogs.com/tiandi/p/11185236.html

标签:30,collection,removeIf,filter,Person,add,toString,new,java8

来源: https://blog.csdn.net/weixin_30294709/article/details/98189344

最后

以上就是单纯哈密瓜为你收集整理的java8+stream+remove_java8 数据集过滤removeIf和filter的全部内容,希望文章能够帮你解决java8+stream+remove_java8 数据集过滤removeIf和filter所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部