leetcode 724.尋找陣列的中心索引
阿新 • • 發佈:2021-01-29
stream方法API
list轉map
-
list泛型物件的任意一屬性進行分組,構成Map<屬性,Object>
Map<String,List<User>> map= userList.stream().collect(Collectors.groupingBy(User::getName));
-
list泛型物件的任意兩個屬性構成Map<屬性1, 屬性2>
public Map<Long, String> getIdNameMap(List<Account> accounts)
-
list泛型物件的任意一屬性為key,泛型物件為value構成Map<屬性,Object>
// 方式一:account -> account是一個返回自己本身的lambda表示式 public Map<Long, Account> getIdAccountMap(List<Account> accounts) { return accounts.
-
指定返回Map的具體實現資料結構
// 指定一個Map的具體實現,如:LinkedHashMap public Map<String, Account> getNameAccountMap(List<Account> accounts) { return accounts.stream().collect(Collectors.toMap(Account::getUsername, Function.identity(), (key1, key2) -> key2, LinkedHashMap::new)); }
list轉list
-
list泛型物件轉為另一個物件的list
List<SettlementInfoPO> settlementInfoPOS = timeoutData.stream().map(item -> { SettlementInfoPO settlementInfoPO = item.convertPo(); return settlementInfoPO; }).collect(Collectors.toList());
-
list泛型物件的某個屬性構成另一個list
roomList.stream().map(Room::getAvgPrice).collect(Collectors.toList());
-
list泛型物件的某屬性排序後構成另一個list
// 升序 roomList.stream().sorted(Comparator.comparing(Room::getAvgPrice)).collect(Collectors.toList()); // 降序 roomList.stream().sorted(Comparator.comparing(Room::getAvgPrice).reversed()).collect(Collectors.toList()); list.sort((a, b) -> a.name.compareTo(b.name));
-
去重,需要重寫物件的equals和hashcode方法
roomList.stream().distinct().collect(Collectors.toList());
-
list泛型物件的某些屬性過濾後構成另一個list
// 且 roomList.stream().filter(benefit -> benefit.getId() == 1 && benefit.getAge() == 20).collect(Collectors.toList()); // 或 roomList.stream().filter(benefit -> benefit.getId() == 1 || benefit.getId() == 20).collect(Collectors.toList());
-
返回list第一個元素
// 返回第一個元素,沒有返回null roomList.stream().findFirst().orElse(null);