黑马程序员技术交流社区
标题:
关于Lambda表达式取出Set元素的问题
[打印本页]
作者:
人小劲大
时间:
2015-6-23 23:13
标题:
关于Lambda表达式取出Set元素的问题
现在我想取出set容器里的每个元素,组成一个长字符串,如何用 lambda表达式书写
String str="";//赋值为空
Set<String> set=new HashSet("adb","sdf","asd"); //创建一个set容器,存放了3个字符串
set.forEach((String name,str)->str+=name+""));//这样就输出有误
请问大神们错在哪
另外有什么简单的的方法
作者:
人小劲大
时间:
2015-6-24 23:46
继续顶一下,希望大家一起讨论
作者:
guiqulaixi
时间:
2015-6-25 18:48
虽然我之前对java8新特性不是很了解,但是查阅了一番资料后也有所了解,如有错误,也请指正,第一,能调用forEach的对象是Stream的子类对象,而Set不是Stream类的子类,所以不能这么写set.forEach(...),第二 forEach方法接受的参数类型为Consumer<? super T> action Consumer接口只有一个方法是 void accept(T t),而你所用的 lambda表达式是会返回类型为String的结果的,也就是说你的lambda表达式不能覆盖void accept(T t)方法,所以错误,
我写了一个,但是不能起到连接字符串作用,供你参考下吧
set.stream().forEach((s)->{System.out.println(s+str);});
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2