首先看一下lambda表达式 现在产生一个新的列表或者map很简单
Random rand = Random()Map<IntegerDouble> map=HashMap()Integer[] integers=Integer[]Arrays.(integersindex->rand.nextInt())Arrays.(integers).forEach(x->map.put(xrand.nextGaussian()))System..println(map.size())
可以看出来已经产生了一个很大的map 其中的parallelsetAll是一个很好的方法
然后我们看看怎么定义一个字典 用它来对已经有的列表进行计数
List<String> cc=ArrayList<String>()Arrays.(integers).forEach(x->cc.add(rand.nextInt()+))Map<StringInteger> countmap=HashMap<>()cc.forEach(x->{ Optional<Integer> iget=Optional.(countmap.get(x))countmap.put(xiget.orElse()+)})
可以看出来用了Optional方法 这个方法很有用用来防止空的集合
我们再看看一些很好用的stream的方法
Integer[] cc=Integer[]System..println(cc.)List<Integer> list=Arrays.(cc).stream().map(x -> rand.nextInt()).collect(Collectors.())System..println(list.size())
这个就是直接初始化了一个列表并且随机赋值
map是一个映射操作 就是把所有的元素(这里用匿名函数表示为x)映射到一个新元素上面并且产生一个stream
list.stream().distinct()刚才说了map 还有一个flatmap 就是把一个几个的元素映射到一个stream上面
一个例子
更多的 可以看这个
http://www.ibm.com/developerworks/cn/java/j-lo-java8streamapi/
回复列表:
最近才知道这些东西都叫做糖果语言~~~
代码有点问题 意会即可