当前位置: 首页 > 知识库问答 >
问题:

通过流连接字符串

燕鸿文
2023-03-14

我正在尝试加入一个名单:

List<String> names;
names = books.stream()
        .map( b -> b.getName() )
        .filter( n -> ( (n != null) && (!n.isEmpty()) ) )
        .collect(Collectors.joining(", "));

这不编译说:

然而,这并不抱怨:

List<String> names;
names = books.stream()
        .map( b -> b.getName() )
        .map( Book::getName )
        .filter( n -> ( (n != null) && (!n.isEmpty()) ) )
        .collect(Collectors.joining(", "));

有人能给我解释一下原因吗?对于.map(b->b.getname()).map(book::getname)之间的区别,我也很感激一些说教性的解释,因为我认为我没有理解对。

共有1个答案

华宣
2023-03-14

联接(“,”)收集器将使用给定的分隔符收集所有字符串并将其联接到单个字符串中。在本例中,collect的返回类型是string,但您试图将结果分配给列表。如果要将字符串收集到列表中,请使用collectors.tolist()

如果您有一个包含book实例的集合,那么只需将book流映射到string流一次就足够了。

>

  • lamdba表达式可以写成包含多个操作的块:

    b -> {
        // here you can have other operations
        return b.getName(); 
    }
    

    如果lambda有单个操作,则可以缩短:

    b -> b.getName()
    

    方法引用只是具有单个操作的lambda的“捷径”。这样:

    b -> b.getName()
    
    Book::getName
    
    b -> b.getName().toLowerCase()
    

    不能使用对getname方法的引用,因为您正在对tolowercase()进行附加调用。

  •  类似资料:
    • 本文向大家介绍通过concat()方法进行字符串连接。,包括了通过concat()方法进行字符串连接。的使用技巧和注意事项,需要的朋友参考一下 您可以使用String类的方法来连接两个字符串。此类将指定的字符串连接到该字符串的末尾。 示例 输出结果

    • 我需要使用启用的kafka和Spring Boot连接到事件中心,并且我有连接字符串和名称空间,应该在哪里连接。 我使用这样的依赖关系 我找到了一个教程,我需要从我的本地机器使用az login登录到azure并创建auth文件,但是我被提供了应该使用的连接字符串,所以有没有任何方法可以使用如下命名空间指定仅连接字符串: 因为现在正在抱怨缺少资源组。 我应该如何连接到EventHub?

    • 问题内容: 我有两个脚本,Server.py和Client.py。我有两个目标: 为了能够一次又一次地从客户端向服务器发送数据。 为了能够将数据从服务器发送到客户端。 这是我的Server.py: 这是我的客户: 该函数首次运行(“ e”进入服务器,我返回返回消息),但是如何使它一遍又一遍地发生(类似于聊天应用程序)?该问题在第一次之后开始。消息不会在第一次之后发送。我究竟做错了什么?我是pyth

    • 问题内容: 我有以下JSON数据: 假设我不知道我有多少列员工,如何在JavaScript中创建该对象(没有连接字符串)?假设我使用“ onGeneratedRow”方法获取每一行,并且需要将每一列(firstName,lastName)推到“ {}”括号中。 问题答案: 这就是您所需要的!

    • 我对蔚蓝相当陌生。我想使用 Azure Cosmos DB 构建一个简单且低成本的 MongoDB。在那里,我创建了一个包含两个子网的 VNET。此外,我创建了一个公共 IP 地址,该地址应该是我的终结点,用于向数据库提供数据。第一个子网应充当具有特定 NSG 的防火墙(我不想使用 Azure 防火墙,因为它每月至少花费 720 欧元),而在第二个子网中,Cosmos DB 通过服务终结点连接。

    • 我在某个主机上运行PostgreSQL服务器。此服务器不对外开放(只允许来自的连接)。我可以通过ssh(使用公钥)以身份登录该主机: 然后我可以对特定用户运行查询。 我需要在这里输入用户的sudo密码。我无法以用户身份连接,也不知道他的密码。我也不能作为用户访问数据库。 现在为了简化开发,我想设置从本地机器到pgserver的ssh隧道: 问题是,虽然可以访问服务器,但他没有访问数据库的权限