首页 > 代码库 > 《Java 8 实战》(三)---- 流
《Java 8 实战》(三)---- 流
流是Java API的新成员,它允许以声明性方式处理数据集合(通过查询语句来表达,而不是临时编写一个实现)。
Java 7 从集合中选出低热量菜肴名称:
List<Dish> lowCaloricDishes = new ArrayList<>(); for (Dish d: menu) { if (d.getCalories() < 400) { lowCaloricDishes.add(d); } } Collections.sort(lowCaloricDishes, new Comparator<Dish>() { public int compare(Dish d1, Dish d2) { return Integer.compare(d1.getCalories(), d2.getCalories()); } }); List<String> lowCaloricDishesName = new ArrayList<>(); for(Dish d: lowCaloricDishes) { lowCaloricDishesName.add(d.getName()); }
Java 8 :
List<String> lowCaloricDishesName2 = menu.stream() .filter(d -> d.getCalories() < 400) .sorted(comparing(Dish::getCalories)) .map(Dish::getName) .collect(toList());
如果要多核架构并行执行这段代码,只需要把stream()换成parallelStream():
List<String> lowCaloricDishesName2 = menu.parallelStream() .filter(d -> d.getCalories() < 400) .sorted(comparing(Dish::getCalories)) .map(Dish::getName) .collect(toList());
《Java 8 实战》(三)---- 流
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。