【Java】深夜代码祭(1)
2016-02-14 02:45
447 查看
问题
半夜睡不着怎么办,码呗! 》_《描述
给出一个IntStream请把它按照奇数偶数规则分解成2个部分代码
import javafx.util.Pair; import java.util.LinkedList; import java.util.Random; import java.util.function.BiFunction; import java.util.stream.IntStream; public class Main { public static IntStream getNumbers(int len, int max) { Random r = new Random(); return IntStream.rangeClosed(1, len).map((x) -> r.nextInt(max)); } public static void main(String[] args) { // 被逼无奈 写了个辅助方法 BiFunction<LinkedList<Integer>, Integer, LinkedList<Integer>> f = (list, i) -> list.add(i) ? list : list; // 加上 .parallel() 就并行了 Pair<LinkedList<Integer>, LinkedList<Integer>> p = getNumbers(100000, 100) .mapToObj((x) -> new Pair<>((x & 1) == 0, x)) .collect( () -> new Pair<>(new LinkedList<>(), new LinkedList<>()), (Pair<LinkedList<Integer>, LinkedList<Integer>> ps, Pair<Boolean, Integer> pe) -> { if(pe.getKey()) new Pair<>(f.apply(ps.getKey(), pe.getValue()), ps.getValue()); else new Pair<>(ps.getKey(), f.apply(ps.getValue(), pe.getValue())); }, (Pair<LinkedList<Integer>, LinkedList<Integer>> ps1, Pair<LinkedList<Integer>, LinkedList<Integer>> ps2) -> new Pair<>(ps1.getKey().addAll(ps2.getKey()), ps1.getValue().addAll(ps2.getValue())) ); // 不写.stream() 也行 p.getKey().forEach(System.out::println); System.out.println("--------------"); p.getValue().forEach(System.out::println); } }
吐槽
代码写长了 真难排版相关文章推荐
- 通过生产者消费者模式例子讲解Java基类方法wait、notify、notifyAll
- eclipse java web 更换项目外部调用名称
- Eclipse使用maven创建struct2项目及遇到的各种坑
- Java线程学习经典例子-读写者演示
- 经典同步模型-生产者消费者java代码实现
- 关于Struts2中的s标签和JSTL中的c标签的对比
- Java面向对象程序设计----核心概念
- java多线程中的volatile线程安全?
- java 原型设计模式
- Java的四种引用
- Java模板引擎 FreeMarker
- JavaWeb项目中的绝对路径与相对路径问题
- Dubbo源代码实现一:切入Spring
- 数据库恢复和备份、jdbc(java)
- 《JAVA语言程序设计》(一)
- eclipse主题设置
- 深入理解Java
- 详解Java中native关键字
- 使用spring web flow遇到的问题-1
- java设计模式系列之装饰者模式