//測試數據寫入 List<User2> lstUsersAll = new ArrayList<>(); User2 user2 = new User2("張三", 168.4, 20); lstUsersAll.add(user2); user2 = new User2("小明", 170d, 17); lstUsersAll.add(user2); user2 = new User2("小紅", 162.2, 22); lstUsersAll.add(user2); //把list裏知足某個條件的成員輸出到新的list //輸出用戶名等於張三的 List<User2> lstUsers = lstUsersAll.stream().filter(t -> "張三".equals(t.getName())).collect(Collectors.toList()); //以上代碼,若是用普通的for循環實現,須要4行代碼,lambda精簡了75%代碼行數 List<User2> lstUsers1 = new ArrayList<>(); for (User2 users : lstUsersAll) { if ("張三".equals(users.getName())) { lstUsers1.add(users); } } //把list裏知足某個條件的成員輸出,且只輸出一個(用於業務邏輯只有一個結果的狀況,省去了獲取list後還要get(0)) //輸出用戶名等於張三的 User2 users = lstUsersAll.stream().filter(t -> "張三".equals(t.getName())).findFirst().orElse(null); //把list裏知足某個條件的成員,只輸出某個屬性(變量) //輸出用戶名等於張三的用戶名 List<String> lstName = lstUsersAll.stream().filter(t -> "張三".equals(t.getName())).map(User2::getName).collect(Collectors.toList()); //統計name屬性的全部惟一值,並只輸出name屬性到List List<String> lstName2 = lstUsersAll.stream().map(User2::getName).distinct().collect(Collectors.toList()); //排序 //如下是對age排升序 List<User2> lstUsersSort = lstUsersAll.stream().sorted(Comparator.comparing(User2::getAge)).collect(Collectors.toList()); //如下是對age排倒序,加了reversed方法就是倒序 lstUsersSort = lstUsersAll.stream().sorted(Comparator.comparing(User2::getAge).reversed()).collect(Collectors.toList()); //多屬性排序,從第二個排序屬性開始使用thenComparing lstUsersSort = lstUsersAll.stream().sorted(Comparator.comparing(User2::getAge).thenComparing(User2::getHeight)).collect(Collectors.toList()); //刪除 //刪除用戶名等於張三的 lstUsersAll.removeIf(t -> "張三".equals(t.getName()));