将方法转换为Lambda表达式

时间:2020-06-16 15:04:35

标签: java lambda

我有一个列表,想要使用Lambda将列表转换为字符串。这是以常规方式执行此操作的代码示例:

x

我正在尝试使用lambda做到这一点,当然,这给了我一个编译器错误:

List<Character> list; //list is already populated
String result="";
for(Character c : list){
    result += c.toString();
}
return result;

正确的lambda表达式是什么? (lambda的新手)。

谢谢

1 个答案:

答案 0 :(得分:0)

sudo docker run --net=host --rm --runtime nvidia --ipc=host -v /tmp/.X11-unix/:/tmp/.X11-unix /tmp/argus_socket:/tmp/argus_socket --cap-add SYS_PTRACE -e DISPLAY=$DISPLAY -it [container]

以上代码段尝试调用与StringBuilder buf = new StringBuilder(); String result = list.forEach(buf->append(c).toString()); 不相关的append方法,这不是您想要执行的操作(特别是因为buf不会返回{{1} })。相反,您可以使用:

forEach

如果您要使用lambda,则相当于:

String

但是,我建议流式传输StringBuilder buf = new StringBuilder(); list.forEach(buf::append); String result = buf.toString(); ,然后将其收集到StringBuilder buf = new StringBuilder(); list.forEach(c -> buf.append(c)); String result = buf.toString(); 中:

List

如果要显式使用lambda而不是方法引用,则可以将String更改为List<Character> list; //list is already populated String result = list.stream().map(Character::toString).collect(Collectors.joining());

相关问题