返回信息流LeetCode:WordBreak
java实现:
public boolean wordBreak(String s, Set<String> dict) {
List<String> bechoose = new ArrayList<>();
dict.stream().filter((str) -> (s.startsWith(str)))
.forEach((str) -> (bechoose.add(str)));//这行出错
while(true){
int size = bechoose.size();
for (int j = 0; j < size; j++) {
String pre = bechoose.remove(0);
dict.stream().filter((str)->(s.startsWith(pre+str)))
.forEach((str) -> bechoose.add(pre + str));
}
if (bechoose.contains(s)) return true;
if (bechoose.size() == 0) return false;
}
}
先不说逻辑对不对,至少在我这里是能编译过的。
但是上传leetcode以后出现了CE,问题如下:
incompatible types: bad return type in lambda expression
麻烦看看怎么回事,出错行上面有注释
@nuanyangyang
这是一条镜像帖。来源:北邮人论坛 / java / #39749同步于 2015/4/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
问个Lambda的问题
icyfox
2015/4/4镜像同步15 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
改成(str) -> {bechoose.add(str);return;} 过了编译。。
我猜是因为bechoose.add(str)返回值是个boolean。
forEach可能参数是要个 string->void的方法。
【 在 icyfox 的大作中提到: 】
: LeetCode:WordBreak
: java实现:
: [code=java]
: ...................
谢谢
为什么我的电脑可以过?
java8的小版本之间也不一样?
【 在 aiquestion 的大作中提到: 】
: 改成(str) -> {bechoose.add(str);return;} 过了编译。。
: 我猜是因为bechoose.add(str)返回值是个boolean。
: forEach可能参数是要个 string->void的方法。
来自「北邮人论坛手机版」
不知道,我电脑也能过。。
【 在 icyfox 的大作中提到: 】
: 谢谢
: 为什么我的电脑可以过?
: java8的小版本之间也不一样?
: ...................
话说这个boolean或者void是返回给谁了?
【 在 aiquestion (狼肿粉丝团|学习c++) 的大作中提到: 】
: 不知道,我电脑也能过。。
没用啊,其实就是对集合内的所有元素都执行了传入的那个函数而已。
【 在 icyfox 的大作中提到: 】
: 话说这个boolean或者void是返回给谁了?
:
eclipse太老?我这个有。
【 在 icyfox 的大作中提到: 】
: 再问一个问题。。
: 为啥找不到呢。。
: 1.8
: ...................
【 在 icyfox 的大作中提到: 】
: 再问一个问题。。
: 为啥找不到呢。。
: 1.8
: ...................
需要一个新版本。试试最新的Luna