爪哇 2博客
 爪哇 2博客

爪哇 8使用者示例

 爪哇  8使用者
在本文中,我们将了解Java 8 消费者接口。
消费者是 单参数功能接口 喜欢 谓词 但它不返回任何值。由于Consumer是功能接口,因此可以用作分配目标 Lambda表达式.

消费者定义

消费者 采用单个参数,不返回任何结果。
这是 消费者 接口.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
@功能接口
上市 接口 消费者<T> {
 
     / **
    *对给定的参数执行此操作。
     *
    * @param t输入参数
     */
     虚空 接受 (T t);
 
    默认 消费者<T> 进而(消费者<? T> ) {
        对象.requireNonNull();
         返回 (T t) -> { 接受 (t); . 接受 (t); };
    }
}
 

It has a 功能al method called 接受 () and 默认方法 进而().

消费者实例

接受 ()方法示例

让’使用Consumer接口打印String:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
组织 . Arpit . 爪哇 2blog;
组织 . Arpit . 爪哇 2blog;
进口 爪哇 . 实用程序 .功能.消费者;
 
上市 爪哇 8ConsumerExample {
 
上市 静态的 虚空 主要 ([] args ) {
 
  消费者<> 消费者String=s-> 系统 .. 打印 (s);
  消费者String. 接受 ( “阿尔伯特” );
}
}
 

We have created consumer object which takes object as input and print it.It is simple use of 消费者 接口 to print 串 .
当您运行上述程序时,将获得以下输出:

Arpit

默认的andThen()方法示例

根据java文档:
Returns a composed 消费者 that performs, in sequence, 这个 operation followed by the 后 operation. If performing either operation throws an exception, it is relayed to the caller of the composed operation. If performing 这个 operation throws an exception, the 后 operation will not be performed.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
组织 . Arpit . 爪哇 2blog;
进口 爪哇 . 实用程序 .功能.消费者;
 
上市 爪哇 8ConsumerExample {
 
上市 静态的 虚空 主要 ([] args ) {
 
     消费者<> 第一C = x -> 系统 .. 打印 (x.降低大小写());
     消费者<> 第二个C = y -> 系统 .. 打印 (y.至大写());
 
     消费者<> 结果 = 第一C .进而( 第二个C );
 
     结果 . 接受 ( “阿尔伯特” );
}
}
 

输出:

Arpit
ARPIT

As you can see, we have created two consumers and used 进而() method to create composite consumer. When we called 接受 () method on composite consumer, both the consumers are called in sequence.

消费者foreach示例

让’s say you have 学生 类 as below:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
 
组织 . Arpit . 爪哇 2blog;
 
上市 学生 {
 
    私人的 整型 ID ;
    私人的 名称 ;
    私人的 性别 ;
    私人的 整型 年龄 ;
 
     上市 学生 ( 整型 ID , 名称 , 性别 , 整型 年龄 ) {
        ();
         这个 . ID = ID ;
         这个 . 名称 = 名称 ;
         这个 . 性别 = 性别 ;
         这个 . 年龄 = 年龄 ;
    }
 
     上市 整型 getId () {
         返回 ID ;
    }
 
     上市 虚空 设置名称 ( 整型 ID ) {
         这个 . ID = ID ;
    }
 
     上市 getName () {
         返回 名称 ;
    }
 
     上市 虚空 setName( 名称 ) {
         这个 . 名称 = 名称 ;
    }
 
     上市 getGender() {
         返回 性别 ;
    }
 
     上市 虚空 setGender( 性别 ) {
         这个 . 性别 = 性别 ;
    }
 
     上市 整型 getAge () {
         返回 年龄 ;
    }
 
     上市 虚空 setAge ( 整型 年龄 ) {
         这个 . 年龄 = 年龄 ;
    }
 
    @覆写
     上市 toString() {
         返回 “学生[id =“ + ID + “,name =” + 名称 + “,性别=” + 性别 + “,age =” + 年龄 + “]” ;
    }
}
 

现在让’在主类中创建Consumer对象,并将其传递给list的forEach方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
   组织 . Arpit . 爪哇 2blog;
 
进口 爪哇 . 实用程序 .数组列表;
进口 爪哇 . 实用程序 . 清单 ;
进口 爪哇 . 实用程序 .功能.消费者;
 
上市 爪哇 8ConsumerStudentExample {
 
     上市 静态的 虚空 主要 ([] args ) {
 
         清单 < 学生 > 学生清单 = createStudentList();
        //为学生对象创建消费者,该消费者将在以下方法的forEach方法中使用
         //清单
        消费者< 学生 > 消费者ForStudent = s -> 系统 .. 打印 (s);
        学生清单.每次(消费者ForStudent);
    }
 
     上市 静态的 清单 < 学生 > createStudentList() {
         清单 < 学生 > 学生清单 = 数组列表<>();
         学生 s1 = 学生 (1, “阿尔伯特” , “ M” , 19);
         学生 s2 = 学生 (2, “约翰” , “ M” , 17);
         学生 s3 = 学生 (3, “玛丽” , “F” , 14);
         学生 s4 = 学生 (4, “马丁”, “ M” , 21);
         学生 s5 = 学生 (5, “莫妮卡”, “F” , 16);
         学生 s6 = 学生 (6, “盟国” , “F” , 20);
 
        学生清单.(s1);
        学生清单.(s2);
        学生清单.(s3);
        学生清单.(s4);
        学生清单.(s5);
        学生清单.(s6);
         返回 学生清单;
    }
}
 

当您运行上述程序时,将获得以下输出:

名字:Arpit ==年龄:19
名字:约翰==年龄:17
名字:玛丽==年龄:14
名字:马丁==年龄:21
名字:莫妮卡==年龄:16
名字:Ally ==年龄:20

We have created consumer object which takes student object as input and print it.Above created consumer object is then passed to 对于 each() method of Iterable 接口.

1
2
3
4
5
6
7
8
 
默认 虚空 每次(消费者<? T> 行动 ) {
        对象.requireNonNull( 行动 );
         对于 (T t : 这个 ) {
             行动 . 接受 (t);
        }
    }
 

As you can see, 对于 each() method takes consumer as input and calls 接受 () method on each object of Iterable.
那’关于Java 8使用者示例的全部内容。


导入联系人

您可能还喜欢:

分享这个

作者

关注作者

相关文章

  • 在Java中将日期转换为LocalDate
    1月12日

    爪哇 日期到LocalDate

    在这篇文章中,我们将看到如何在Java中将Date转换为LocalDate。有时,我们可能需要将Date转换为新的Java 8 API,反之亦然。在Java中,有多种将Date转换为LocalDate的方法。另请参见:使用Date类的[InInstant()方法将Java中的LocalDate转换为Date…]

  • 在Java中将LocalDate转换为Date
    1月11日

    迄今为止的Java LocalDate

    在这篇文章中,我们将看到如何将LocalDate转换为Date。 爪哇 8引入了许多有关日期和时间的新API。有多种方法可以将Java LocalDateTime转换为日期。使用Instant对象您可以使用来自Zone的Instant对象将LocalDate转换为Date。这是 […]

  • 将流转换为Java中的列表
    12月31日

    爪哇 流列表

    在本文中,我们将看到如何在Java中将Stream转换为List。在Java中,有多种方法可以将Stream转换为List。使用Collectors.toList()可以将Collectors.toList()传递给Stream.collect()方法,以在Java中将Stream转换为List。流’的collect方法对Stream和Collectors的元素执行可变的约简操作。toList()提供[…]

  • 在Java中将LocalDateTime转换为时间戳
    11月18日

    在Java中将LocalDateTime转换为时间戳

    在本文中,我们将如何将LocalDateTime转换为Timestamp。在学习如何将localdatetime转换为时间戳之前,让我们了解LocalDateTime和Timestamp,并了解这种转换的重要性。 LocalDateTime LocalDateTime在Java 8中已引入。LocalDateTime可以导入时间包:import 爪哇 .time.LocalDateTime; LocalDateTime是使用的不可变对象[…]

  • 8月28日

    爪哇 8流 API深入指南

    在这篇文章中,我们将看到Java 8流的深入概述,其中包含许多示例和练习。简介您可能认为Stream必须类似于InputStream或OutputStream,但是’并非如此。流表示支持顺序和并行聚合操作的一系列元素。流不存储[…]

  • 要映射的Java流列表
    4月26日

    要映射的Java流列表

    在本文中,我们将看到如何在Java 8中使用Stream将List转换为Map。’s toMap()可与Stream一起使用,以在Java中将List转换为Map。考虑一个名为Movie的类,它具有3个字段–编号,名称和类型[crayon-601d16d705107736285285 /]创建电影列表并将其转换为[…]

发表评论 取消回复

您的电子邮件地址不会被公开。 必需的地方已做标记 *

订阅我们的新闻

获取质量教程到您的收件箱。现在订阅。


让’s be Friends

©2020 爪哇 2博客