由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 问个java8问题
相关主题
java 8就是一坨屎俺现在开始面试房客的时候会问Java的问题
这次Node把GAE也给干了有intellij 高手么 问2个java技巧
为什么貌似objective C比c++要火?Scala debug
狂搞swift中scala 的future 和 promise有机制防止dead lock吗?
买卖提上 这几年的buzzword珍惜生命,远离 R 和 Go
各个语言在paradigms上的对比scala 问题请教 -- scala.runtime.Tuple2Zipped
一个scala future的实例gdb vs print or println
Swift这么弱?what's wrong with this scripts?variable passing?
相关话题的讨论汇总
话题: collect话题: list话题: filter话题: foreach话题: integer
进入Programming版参与讨论
1 (共1页)
c******f
发帖数: 243
1
在学java 8,用Java做不出来...哪里错了
同样的题 majority number..
scala
val num = List(1,1,1,1,1,1,1,1,1,11,1,1,1,1,1,1,2,3,4,5,6,7)
num.groupBy(x=>x).filter(_._2.size > num.length / 2).map(_._1).foreach(
println)
output:
1
java
List nums = new ArrayList<>();
for (int i = 1; i <= 15; i++) nums.add(1);
for (int i = 1; i <= 3; i++) nums.add(i);
Collection> collect = nums.stream().collect(Collectors
.groupingBy(n -> n)).values();
System.out.println(collect);
Stream.of(collect).filter(l -> l.size() > nums.size() / 2).collect(
Collectors.toList()).forEach(l -> System.out.println(l));
只看到第一个println
[[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [2], [3]]
看不到后面的println
p*****2
发帖数: 21240
2
Java8跟Scala一比,高下立现
l******t
发帖数: 55733
3
用ide吗?追进去不就行了
l******t
发帖数: 55733
4
没用过java8但感觉出问题的地方在filter里的比较。你的l和num的scope怎么确定的
z****e
发帖数: 54598
5
用rxjava就好了
filter, map这些都有

【在 p*****2 的大作中提到】
: Java8跟Scala一比,高下立现
z****e
发帖数: 54598
6
这个贴很好滴说明了debug fp有多苦逼了
小手都搞不定啊

【在 l******t 的大作中提到】
: 没用过java8但感觉出问题的地方在filter里的比较。你的l和num的scope怎么确定的
l******t
发帖数: 55733
7
很好的说明了java8不是fp。怀疑这里面哪个函数偷偷动了list的指针了

【在 z****e 的大作中提到】
: 这个贴很好滴说明了debug fp有多苦逼了
: 小手都搞不定啊

t**r
发帖数: 3428
8
java 8 sucks
z****e
发帖数: 54598
9
没有回答到点子上啊
反正debug就是debug到这么一大坨出了问题
Stream.of(collect).filter(l -> l.size() > nums.size() / 2).collect(
Collectors.toList()).forEach(l -> System.out.println(l));
这里面n步,用fp的写法,ide都帮不了你啊
debug颇为耗时的说
上面scala的写法也是一样的
只不过没出问题,等出了问题的时候
这么一大坨还不如重构

【在 l******t 的大作中提到】
: 很好的说明了java8不是fp。怀疑这里面哪个函数偷偷动了list的指针了
z****e
发帖数: 54598
10
Stream.of(collect)
.filter(l -> l.size() > nums.size() / 2)
.collect(Collectors.toList())
.forEach(l -> System.out.println(l));
写成这样,然后设置断点,用ide一个个看过去
看哪一步出了问题
相关主题
各个语言在paradigms上的对比俺现在开始面试房客的时候会问Java的问题
一个scala future的实例有intellij 高手么 问2个java技巧
Swift这么弱?Scala debug
进入Programming版参与讨论
c******f
发帖数: 243
11
这也太怪了吧...
Stream.of(collect).forEach(l-> System.out.println(l + " " + nums.size()));
[[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [2], [3]] 18
我还以为是
[1,1,....1] 18
[2]
[3]
原来这样才对,要看API才行, 还是不太喜欢java 8
Collection> collect = nums.stream().collect(Collectors
.groupingBy(n -> n)).values();
collect.parallelStream().filter(l->l.size() > nums.size() / 2).
collect(Collectors.toList()).forEach(l -> System.out.println(l));
z****e
发帖数: 54598
12
api另说
你用的debug方式太原始了
是println
工作中这样搞搞到什么时候去
建议用ide啊
直接看内存变量的val,而不是println出来

Collectors

【在 c******f 的大作中提到】
: 这也太怪了吧...
: Stream.of(collect).forEach(l-> System.out.println(l + " " + nums.size()));
: [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [2], [3]] 18
: 我还以为是
: [1,1,....1] 18
: [2]
: [3]
: 原来这样才对,要看API才行, 还是不太喜欢java 8
: Collection> collect = nums.stream().collect(Collectors
: .groupingBy(n -> n)).values();

c******f
发帖数: 243
13
java 8 ide debug不了啊,filter()之后collect变量的还是一样的....
l******t
发帖数: 55733
14
重构很对。fp也可以写的简单易懂好调试

【在 z****e 的大作中提到】
: 没有回答到点子上啊
: 反正debug就是debug到这么一大坨出了问题
: Stream.of(collect).filter(l -> l.size() > nums.size() / 2).collect(
: Collectors.toList()).forEach(l -> System.out.println(l));
: 这里面n步,用fp的写法,ide都帮不了你啊
: debug颇为耗时的说
: 上面scala的写法也是一样的
: 只不过没出问题,等出了问题的时候
: 这么一大坨还不如重构

z****e
发帖数: 54598
15
会产生一个local variable
用上inspect功能应该可以看到
选中,然后右键点击打开列表,看看有没有inspect
然后试试看

【在 c******f 的大作中提到】
: java 8 ide debug不了啊,filter()之后collect变量的还是一样的....
z****e
发帖数: 54598
16
你塞进去足够多的中间状态就可以很好调试了

【在 l******t 的大作中提到】
: 重构很对。fp也可以写的简单易懂好调试
p*****2
发帖数: 21240
17

collect.stream()
.filter(l -> l.size() > nums.size()/2)

【在 c******f 的大作中提到】
: 在学java 8,用Java做不出来...哪里错了
: 同样的题 majority number..
: scala
: val num = List(1,1,1,1,1,1,1,1,1,11,1,1,1,1,1,1,2,3,4,5,6,7)
: num.groupBy(x=>x).filter(_._2.size > num.length / 2).map(_._1).foreach(
: println)
: output:
: 1
: java
: List nums = new ArrayList<>();

d****i
发帖数: 4809
18
这个例子充分说明了java8引入所谓的fp是多么的扯蛋,还是不要搞什么8了,老老实实
用java6就已经可以简单快速高效的解决你这个问题了。

【在 c******f 的大作中提到】
: 在学java 8,用Java做不出来...哪里错了
: 同样的题 majority number..
: scala
: val num = List(1,1,1,1,1,1,1,1,1,11,1,1,1,1,1,1,2,3,4,5,6,7)
: num.groupBy(x=>x).filter(_._2.size > num.length / 2).map(_._1).foreach(
: println)
: output:
: 1
: java
: List nums = new ArrayList<>();

p*****2
发帖数: 21240
19
java8 引入的不好 scala要好用多了

【在 d****i 的大作中提到】
: 这个例子充分说明了java8引入所谓的fp是多么的扯蛋,还是不要搞什么8了,老老实实
: 用java6就已经可以简单快速高效的解决你这个问题了。

n*w
发帖数: 3393
20
比较下c# version。
var num = new List {1,1,1,1,1,1.....}
num.GroupBy(x=>x).Where(x => x.Count() > num.Count()/2).Select(x=>x.Key);

【在 c******f 的大作中提到】
: 在学java 8,用Java做不出来...哪里错了
: 同样的题 majority number..
: scala
: val num = List(1,1,1,1,1,1,1,1,1,11,1,1,1,1,1,1,2,3,4,5,6,7)
: num.groupBy(x=>x).filter(_._2.size > num.length / 2).map(_._1).foreach(
: println)
: output:
: 1
: java
: List nums = new ArrayList<>();

相关主题
scala 的future 和 promise有机制防止dead lock吗?gdb vs print or println
珍惜生命,远离 R 和 Gowhat's wrong with this scripts?variable passing?
scala 问题请教 -- scala.runtime.Tuple2ZippedC# HtmlElement.InvokeMember at Amazon.com
进入Programming版参与讨论
n*w
发帖数: 3393
21
f#:
let num = [1;1;1;1;1;1;......]
num
|> Seq.groupBy (fun x->x)
|> Seq.filter (fun x-> (Seq.length (snd x))>(Seq.length num)/2)
|> printfn "%A"

【在 n*w 的大作中提到】
: 比较下c# version。
: var num = new List {1,1,1,1,1,1.....}
: num.GroupBy(x=>x).Where(x => x.Count() > num.Count()/2).Select(x=>x.Key);

b**l
发帖数: 25
22
This will work:
List nums = new ArrayList<>();
for (int i = 1; i <= 15; i++) {
nums.add(1);
}
for (int i = 1; i <= 3; i++) {
nums.add(i);
}
Collection> collect = nums.stream().collect(Collectors
.groupingBy(n -> n)).values();
System.out.println(collect);
collect.stream().filter(l -> l.size() > nums.size() / 2)
.flatMap(Collection::stream).distinct()
.forEach(System.out::println);
The problem is you are using Stream.of(collect) instead of collect.stream(),
please check JavaDoc, you are actually calling
public static Stream of(T t);
n*w
发帖数: 3393
23
linq query expression:
var num = new List{1,1,1,1,1,1,1,1,1,11,1,1,1,1,1,1,2,3,4,5,6,7};
var r = from n in num
group n by n into g
where g.Count() > num.Count() /2
select g.Key;

【在 n*w 的大作中提到】
: 比较下c# version。
: var num = new List {1,1,1,1,1,1.....}
: num.GroupBy(x=>x).Where(x => x.Count() > num.Count()/2).Select(x=>x.Key);

z****e
发帖数: 54598
24
re这个
返回值其实不是一个collection,而是Stream
所以各种针对collection的操作就失效了

Collectors

【在 b**l 的大作中提到】
: This will work:
: List nums = new ArrayList<>();
: for (int i = 1; i <= 15; i++) {
: nums.add(1);
: }
: for (int i = 1; i <= 3; i++) {
: nums.add(i);
: }
: Collection> collect = nums.stream().collect(Collectors
: .groupingBy(n -> n)).values();

c******f
发帖数: 243
25
不学java8不行啊..组里的packages要migrate java8了...
组里不少ruby, scala fan boys
t***t
发帖数: 6066
26
其实dart挺好。可惜生不逢时,连狗都抛弃它了。
语言方面,dart设计得挺好。
p*****2
发帖数: 21240
27
被抛弃了?
zhaoce不是用的很爽吗

【在 t***t 的大作中提到】
: 其实dart挺好。可惜生不逢时,连狗都抛弃它了。
: 语言方面,dart设计得挺好。

k****i
发帖数: 101
28
-- hs aholic
findM lst =
(filter ((> len) . (* 2) . length))
. (groupBy (on (==) snd))
. (sortBy (on compare snd))
$ (zip [0 .. len - 1] lst)
where len = length lst
findM "aha" -- [[(0,'a'),(2,'a')]]
z****e
发帖数: 54598
29
他在l家,又不是g家
而且dart在斯堪的纳维亚那边做
美国的g家人怎么可能知道那边的情况
还不如说说他们l家怎么抛弃node和sala的

【在 p*****2 的大作中提到】
: 被抛弃了?
: zhaoce不是用的很爽吗

t***t
发帖数: 6066
30
dart team被chrome组抛弃,加入android组未遂,被迫加入ads组,不是很说明问题吗
?现在就靠ads组吊着一口气。

【在 p*****2 的大作中提到】
: 被抛弃了?
: zhaoce不是用的很爽吗

相关主题
怎么非ASCII字符就过滤不了呢?[Perl]这次Node把GAE也给干了
how to sed from grep output in c shell? (转载)为什么貌似objective C比c++要火?
java 8就是一坨屎狂搞swift中
进入Programming版参与讨论
N********n
发帖数: 8363
31

dart理念不错,但是钩子办事经常半途而废所以不靠谱。

【在 t***t 的大作中提到】
: dart team被chrome组抛弃,加入android组未遂,被迫加入ads组,不是很说明问题吗
: ?现在就靠ads组吊着一口气。

z****e
发帖数: 54598
32
你对欧洲的事情知道的这么清楚?dart主要是欧洲人在做,估计跟v8是一个组
跟美国人没啥关系,其他两个应该都是加州做的
chrome的组应该是阿三的组,赶走鲁宾的就是chrome那个组
鲁宾做的android又不缺少虚拟机,当然不会要v8这种引擎
不过也不是没有,dart最近搞了个android上的版本出来,感觉怪怪的
话说ads难道不是google的王牌组?没有ads,google股价至少掉一半
我说最近怎么adsense弄了个什么异步的出来,如果ads用dart,那就真发达了
ads远比什么chrome,android要重要得多,对于google来说

【在 t***t 的大作中提到】
: dart team被chrome组抛弃,加入android组未遂,被迫加入ads组,不是很说明问题吗
: ?现在就靠ads组吊着一口气。

t***t
发帖数: 6066
33
dart加入ads组不怪怪的么?本来被chrome抛弃后要加入android组的,不知咋又失败只
好加入ads组。ads组接受唯一原因是ads已经用dart开发一两年了,没法从头再来,完
全也是被迫的。

【在 z****e 的大作中提到】
: 你对欧洲的事情知道的这么清楚?dart主要是欧洲人在做,估计跟v8是一个组
: 跟美国人没啥关系,其他两个应该都是加州做的
: chrome的组应该是阿三的组,赶走鲁宾的就是chrome那个组
: 鲁宾做的android又不缺少虚拟机,当然不会要v8这种引擎
: 不过也不是没有,dart最近搞了个android上的版本出来,感觉怪怪的
: 话说ads难道不是google的王牌组?没有ads,google股价至少掉一半
: 我说最近怎么adsense弄了个什么异步的出来,如果ads用dart,那就真发达了
: ads远比什么chrome,android要重要得多,对于google来说

z****e
发帖数: 54598
34
加入android组做啥涅?
android有java了,不管什么语言凑过去都感觉怪怪的
ads都用dart开发了呀?dart真牛,这么重要的东西都交给它去做了

【在 t***t 的大作中提到】
: dart加入ads组不怪怪的么?本来被chrome抛弃后要加入android组的,不知咋又失败只
: 好加入ads组。ads组接受唯一原因是ads已经用dart开发一两年了,没法从头再来,完
: 全也是被迫的。

k****i
发帖数: 101
35
-- hs solution to original problem of finding majority
-- inherent lazy-eval
-- with comparable complexity to imperative counterparts
findM2 lst =
let
f [] = Nothing
f (x : xs) =
if length x * 2 > len
then Just . head $ x
else f xs
where len = length lst
in
f . group $ lst
findM2 "oop" -- Just 'o'
1 (共1页)
进入Programming版参与讨论
相关主题
what's wrong with this scripts?variable passing?买卖提上 这几年的buzzword
C# HtmlElement.InvokeMember at Amazon.com各个语言在paradigms上的对比
怎么非ASCII字符就过滤不了呢?[Perl]一个scala future的实例
how to sed from grep output in c shell? (转载)Swift这么弱?
java 8就是一坨屎俺现在开始面试房客的时候会问Java的问题
这次Node把GAE也给干了有intellij 高手么 问2个java技巧
为什么貌似objective C比c++要火?Scala debug
狂搞swift中scala 的future 和 promise有机制防止dead lock吗?
相关话题的讨论汇总
话题: collect话题: list话题: filter话题: foreach话题: integer