java练习使用Predicate操作集合

import java.util.*;
import java.util.function.*;

public class PredicateTest
{
	public static void main(String[] args)
	{
		System.out.println("练习1");
		HashSet books = new HashSet();
		books.add("轻量级JavaEE企业应用实战");
		books.add("疯狂Java讲义");
		books.add("疯狂IOS讲义");
		books.add("疯狂Ajax讲义");
		books.add("疯狂Android讲义");
		
		//books.removeIf( ele -> ((String) ele).length() < 10); //就是用一个函数式接口返回一个boolean来确定对各个元素的处理
		System.out.println(books);

		System.out.println();
		System.out.println("练习2");

		Predicate p = new Predicate<String>()
		{
			//重写test方法
			public boolean test(String str)
			{
				if(str.length() > 2)
					return true;
				else 
					return false;	
			
			}
		};	
		p = p.and(ele -> !ele.equals("a"));
		System.out.println(p.test("aaa"));	

		//统计书名包含“疯狂”子串的图书数量
		System.out.println(calAll(books,ele -> ((String)ele).contains("疯狂")));
		//统计书名包含“java”子串的图书数量,
		System.out.println(calAll(books, ele->((String)ele).contains("Java")));
		//统计书名字符串长度大于10的图书数量
		System.out.println(calAll(books,ele -> ((String)ele).length() > 10));

	}
	
	public static int calAll(Collection books, Predicate p)
	{
		int total = 0;
		for(var obj : books)
		{
			//使用Predicate的test()方法判断对象
			if( p.test(obj))
			{
				total ++;
			}
		}
		return total;
	}
	
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

细水长流cpu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值