我有一个列表,想要使用Lambda将列表转换为字符串。这是以常规方式执行此操作的代码示例:
x
我正在尝试使用lambda做到这一点,当然,这给了我一个编译器错误:
List<Character> list; //list is already populated
String result="";
for(Character c : list){
result += c.toString();
}
return result;
正确的lambda表达式是什么? (lambda的新手)。
谢谢
答案 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());
。