p*****2 发帖数: 21240 | 1
collect.stream()
.filter(l -> l.size() > nums.size()/2) |
|
n*w 发帖数: 3393 | 2 比较下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); |
|
n*w 发帖数: 3393 | 3 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" |
|
b**l 发帖数: 25 | 4 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::... 阅读全帖 |
|
n*w 发帖数: 3393 | 5 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; |
|
z****e 发帖数: 54598 | 6 re这个
返回值其实不是一个collection,而是Stream
所以各种针对collection的操作就失效了
Collectors |
|
t***t 发帖数: 6066 | 7 其实dart挺好。可惜生不逢时,连狗都抛弃它了。
语言方面,dart设计得挺好。 |
|
|
k****i 发帖数: 101 | 9 -- 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 | 10 他在l家,又不是g家
而且dart在斯堪的纳维亚那边做
美国的g家人怎么可能知道那边的情况
还不如说说他们l家怎么抛弃node和sala的 |
|
t***t 发帖数: 6066 | 11 dart team被chrome组抛弃,加入android组未遂,被迫加入ads组,不是很说明问题吗
?现在就靠ads组吊着一口气。 |
|
N********n 发帖数: 8363 | 12
dart理念不错,但是钩子办事经常半途而废所以不靠谱。 |
|
z****e 发帖数: 54598 | 13 你对欧洲的事情知道的这么清楚?dart主要是欧洲人在做,估计跟v8是一个组
跟美国人没啥关系,其他两个应该都是加州做的
chrome的组应该是阿三的组,赶走鲁宾的就是chrome那个组
鲁宾做的android又不缺少虚拟机,当然不会要v8这种引擎
不过也不是没有,dart最近搞了个android上的版本出来,感觉怪怪的
话说ads难道不是google的王牌组?没有ads,google股价至少掉一半
我说最近怎么adsense弄了个什么异步的出来,如果ads用dart,那就真发达了
ads远比什么chrome,android要重要得多,对于google来说 |
|
t***t 发帖数: 6066 | 14 dart加入ads组不怪怪的么?本来被chrome抛弃后要加入android组的,不知咋又失败只
好加入ads组。ads组接受唯一原因是ads已经用dart开发一两年了,没法从头再来,完
全也是被迫的。 |
|
z****e 发帖数: 54598 | 15 加入android组做啥涅?
android有java了,不管什么语言凑过去都感觉怪怪的
ads都用dart开发了呀?dart真牛,这么重要的东西都交给它去做了 |
|
k****i 发帖数: 101 | 16 -- 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' |
|
N********n 发帖数: 8363 | 17
WEBOS、CHROMEOS就是构筑在H5上面啊。既然H5要火怎么WEBOS、CHROMEOS没
火起来?老子早就说过H5就是个SPA的命,写不了正经程序。LINQ也是你个SB
在这里论证了N年JAVA不需要这种FEATURE,结果被JAVA8 STREAM API打脸,
还泥马预言必中,LOL,围观SB。 |
|
|
p*****2 发帖数: 21240 | 19 封装是data和function的强耦合
所以oop为了代码复用又搞出了继承 而加重了耦合
Java8的新feature主要是为了解耦用的 比如higher order function interface
default method |
|
p*****2 发帖数: 21240 | 20 没说oo不好 oo肯定有oo的优势 但是不等于不需要fp。 两个结合才是王道。不然Java8
也按耐不住了
OO |
|
p*****2 发帖数: 21240 | 21 语言不足有类库补也没什么意思
不然出java8干嘛
语言还是会发展的 |
|
|
p*****2 发帖数: 21240 | 23
现在越来越不明确了。Java8明显偏向了FP。Java的现状跟OO的原旨,封装,继承,多
态渐行渐远。 |
|
|
z****e 发帖数: 54598 | 25 java7就要加lambda了
而且差点加成1st class citizen
后来反对声音很大,所以打回去重做
做成java8现在这样
jcp很保守好不好
相比之下,scala就是一通乱改 |
|
|
z****e 发帖数: 54598 | 27 你说得没错,thread一样做async,而且这正是java8的改进方向
关键在于脚本无法启动thread,导致thread和process绑定
绝大多数资源都丢给process去浪费了,能够自由控制thread的语言强势多了
能够做出更为强大的framework,比如vert.x
补充一点,你说的future那个稍微有些落伍
lambda出来之后,可以不用future了,可以focus在以lambda为重点的callback上
这样就能实现真正的async了,以前future需要wait,这就有block
async
pool |
|
|
z****e 发帖数: 54598 | 29 future并不是真正的异步
callback的时候会block
当然wwzz说了completefuture那个我不知道
没有用过,不知道运作原理如何
但是最原始的future还是容易block住
而用了lambda之后就可以不用future
直接把callback func扔进去就好了
java8之所以需要弄lambda多少也是为了这个考虑
否则弄个匿名类放进去就有些怪异了
但是lambda层层嵌套还是会造成灾难
所以要用rxjava |
|
c******o 发帖数: 1277 | 30 good: scala/swift/clojure
most useful: java8/javascript/ruby/c |
|
p*****2 发帖数: 21240 | 31 首先感觉Go受到C,Java,Javascript,Scala/Haskell的影响,但是从精神上主要是C
的影响,这也是人所共知的,所以确实是个升级版的C语言。看得出来作者是较强烈
against Java的,这点比较赞。JS和Scala/Haskell的影响主要是functional和一些语
法特性上,但是显然functional的影响比较浅显,甚至还不如对Java8的影响大。
先说说优点
1. 并发设计的十分强大,在我用过的几种语言中绝对是排行首位,也是go的最大卖点。
2. 简化了OO,抛弃了OO很多糟粕。
3. 简单易学,大众语言, 适合团队作战。
4. 确实在不少地方对C语言进行了改良。
再说说缺点
1. 最大的问题就是error handling部分,延续了C的处理方式,在语法部分尝试去简化
,但是感觉效果其实并不是很明显。
2. 因为#1,使得一个函数里会出现很多的return,可读性比较差。但是由于加入了
defer,使得问题没有在C里面那么严重,习惯了也不是不能接受。
3. goto感觉被阉割了,C语言里的一些技巧很难使用,感觉goto的用处没那么大了。当
然这也不... 阅读全帖 |
|
g*****g 发帖数: 34805 | 32 Java的创新主要是靠第三方开源类库驱动的。语法的改动从Java2到Java5到Java8,三
个版本才来一次。Java9肯定只是修修补补。 |
|
p*****2 发帖数: 21240 | 33
抗拒
现在java8也是map,foreach这些了,有什么可怕的?
implicit class是想模仿type class,有些时候很有用。
oop你指的是什么? |
|
|
p*****2 发帖数: 21240 | 35
,
这个主要是为了pattern matching。Java8也没提供这个功能。 |
|
z****e 发帖数: 54598 | 36 感觉跟java8几乎没啥本质区别
除了ide弱一点,xcode反应比较慢以外
还有略微偏向一点fp,有1st class func以外
其他基本上跟java没啥本质区别
就是lambda+oop
self就是this
static就是class func
什么enum, class这些概念都是共通的,连关键字都一样
android和ios的差异主要在framework上
android搞成双线程真心蛋疼 |
|
z*******3 发帖数: 13709 | 37 java8, rxjava什么最新的api里面有一种streaming的api
这个用来搞什么real time的counting是绝佳的设计
以前只能用storm这些,现在很多都能用了
还有scalaz这些,不过估计你不太了解
rxjava是这些东东里面最简单的一个,vert.x也很简单
加上vert.x也有mail,web这些,所以用vert.x最好
http://vertx.io/docs/vertx-rx/java/ |
|
z*******3 发帖数: 13709 | 38 flink还没有成熟啊,现在用flink也不合适
storm其实也是一个chain/pipline
如果用storm的话,需要自己做adapter,集成storm&hadoop/c* etc.
如果不怕将来改代码的话,上flink也没啥大不了
就是万一出现什么api的改动,将来要重构代码会很烦
如果不是为了nosql考虑的话
java8自己有stream api
rxjava也有stream,还有scalaz这些
用这些自己裸写也没啥大不了的 |
|
d******e 发帖数: 2265 | 39 和java 6还是有很大区别的。java8是开始进化了。 |
|
p*****2 发帖数: 21240 | 40 error: local variables referenced from a lambda expression must be final or
effectively final |
|
g*****g 发帖数: 34805 | 41 匿名内部类就这要求,lambda不过是个语法糖。
or |
|
|
k**********g 发帖数: 989 | 43
Closed as duplicate 5 minutes ago
This question has been asked before and already has an answer. If those
answers do not fully address your question, please ask a new question. |
|
|
|
|
p***o 发帖数: 1252 | 47 final的要求比immutable低多了, 不讲究的搞个final数组, 讲究的包个class,
都能绕过去。 |
|
|
z****e 发帖数: 54598 | 49
是,final只是固定了stack里面的value
不能阻止你更改heap里面的value
但是这个本意就是fp里面immutable那个考虑
为了对付多线程并发修改
匿名类和cb主要是gui在用
而这里经常会启动一个thread在后台run
而经常这里需要传入一个状态,这个状态就很需要final
否则改了就痛苦了 |
|
z****e 发帖数: 54598 | 50
这里的主要用途就是一个lambda,以前没有lambda的时候
你只能用匿名类做一层包装 |
|