3.1 Predicate 实例
- /**
- * Predicate谓词测试,谓词其实就是一个判断的作用类似bool的作用
- */
- @Test
- public void test_Predicate() {
- //① 使用Predicate接口实现方法,只有一个test方法,传入一个参数,返回一个bool值
- Predicate<Integer> predicate = new Predicate<Integer>() {
- @Override
- public boolean test(Integer integer) {
- if(integer > 5){
- return true;
- }
- return false;
- }
- };
- System.out.println(predicate.test(6));
- System.out.println("********************");
- //② 使用lambda表达式,
- predicate = (t) -> t > 5;
- System.out.println(predicate.test(1));
- System.out.println("********************");
- }
输出结果
3.2 实例分析
① Predicate 接口分析
- //① 使用Predicate接口实现方法,只有一个test方法,传入一个参数,返回一个bool值
- Predicate<Integer> predicate = new Predicate<Integer>() {
- @Override
- public boolean test(Integer integer) {
- if(integer > 5){
- return true;
- }
- return false;
- }
- };
这段代码中,创建了一个 Predicate 接口对象,其中,实现类 test 方法,需要传入一个参数,并且返回一个 bool 值,所以这个接口作用就是判断!
- System.out.println(predicate.test(6));
再看,调用 test 方法,传入一个值,就会返回一个 bool 值。
② 使用lambda表达式作为 predicate
- //② 使用lambda表达式,
- predicate = (t) -> t > 5;
- System.out.println(predicate.test(1));
- System.out.println("********************");
lambda 表达式返回一个 Predicate 接口,然后调用 test 方法!
3.3 Predicate 接口实例2
- /**
- * Predicate谓词测试,Predicate作为接口使用
- */
- @Test
- public void test_Predicate2() {
- //① 将Predicate作为filter接口,Predicate起到一个判断的作用
- Predicate<Integer> predicate = new Predicate<Integer>() {
- @Override
- public boolean test(Integer integer) {
- if(integer > 5){
- return true;
- }
- return false;
- }
- };
- Stream<Integer> stream = Stream.of(1, 23, 3, 4, 5, 56, 6, 6);
- List<Integer> list = stream.filter(predicate).collect(Collectors.toList());
- list.forEach(System.out::println);
- System.out.println("********************");
- }
输出结果
(编辑:ASP站长网)
|