java8使用流的filter來篩選數據的實現
本文主要介紹瞭java8使用流的filter來篩選數據的實現,分享給大傢,具體如下:
package chapter1; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import static java.util.stream.Collectors.groupingBy; public class stream { //比如說 你需要在一個列表中 篩選出所以重量大於150的蘋果,然後按照顏色分組 //按常規的篩選寫法 就是在循環裡面 迭代篩選 public static void main(String[] args) { List<Apple> appleList = new ArrayList<>(); //常規寫法 Map<String, List<Apple>> AppMap = new HashMap<>(); for (Apple apple : appleList) { if (apple.getWeight() > 150) { //如果重量大於150 if (AppMap.get(apple.getColor()) == null) { //該顏色還沒分類 List<Apple> list = new ArrayList<>(); //新建該顏色的列表 list.add(apple);//將蘋果放進去列表 AppMap.put(apple.getColor(),list);//將列表放到map中 }else { //該顏色分類已存在 AppMap.get(apple.getColor()).add(apple);//該顏色分類已存在,則直接放進去即可 } } } //如上方式 就可以篩選出來所有的150克大小以上的蘋果,並按顏色分類 //方式二 使用java8提供的流api實現 這種叫內部迭代 Map<String, List<Apple>> AppMap2=appleList.stream().filter((Apple a)->a.getWeight()>150) //篩選出大於150的 .collect(groupingBy(Apple::getColor)); //按顏色分組 最後得到map } class Apple { private String color;//顏色 private Integer weight; //重量 public String getColor() { return color; } public void setColor(String color) { this.color = color; } public Integer getWeight() { return weight; } public void setWeight(Integer weight) { this.weight = weight; } } }
到此這篇關於java8使用流的filter來篩選數據的實現的文章就介紹到這瞭,更多相關java8 filter篩選數據內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Java Stream流零基礎教程
- Java與Scala創建List與Map的實現方式
- 一篇文章帶你瞭解Java Stream流
- java8如何根據某一屬性條件快速篩選list中的集合
- Java8 將一個List<T>轉為Map<String,T>的操作