将list转为map
Map<Long, ItemTO> itemMap = items.stream().collect(Collectors.toMap(ItemTO::getEventId, Function.identity(), (v1, v2)->v1));
- List中对象的某个属性值拿出来作为一个list
// 去重
List<Long> ids = items.stream().map(ItemTO::getId).distinct().collect(Collectors.toList());
// 不去重
List<Long> ids = items.stream().map(ItemTO::getId).collect(Collectors.toList());
- 将list转为Map<Long, List>
Map<Long, List<ItemTO>> itemListMap = itemList.stream().collect(Collectors.groupingBy(item -> item.getId()));
Map<Long, ItemTO> itemMap =
items.stream().collect(Collectors.toMap(ItemTO::getEventId, Function.identity(), (v1, v2)->v1));
- 将list中的string转为long
List<Long> idList = groupList.stream().map(group->Long.parseLong(group.getGroupLeaderId())).collect(Collectors.toList());
- 过滤操作
groupIdList.stream().filter(x -> x!=null).collect(Collectors.toList());
List<Long> allPlatformIids = allStoreItemIndexResultTOS.stream().filter(t -> StoreItemTypeEnum.PLATFORM.getType()
.equals(t.getType())).map(StoreItemIndexResultTO::getIid).collect(Collectors.toList());
//过滤采购数量为0的sku
List<ObmSkuInfoTO> skuCollectList = skuInfoTOList.stream().
filter(e -> e.getNum() > 0).collect(Collectors.toList());
/**
* 在订单列表中过滤指定的oid
* @param effectiveLists
* @param oid
* @return
*/
private List<ItemTO> filterOrder(List<ItemTO> itmeList, long oid) {
return itmeList.stream().filter(p -> {
if (p.getOid().equals(oid)) {
return false;
}
return true;
}).collect(Collectors.toList());
}
- 将list中对象的两个属性值分别作为map的key和value
itemList.stream().filter(t -> t.getId() != null)
.collect(Collectors.toMap(ItemTO::getId, ItemTO::getName, (k1, k2)->k2));
- 对list做操作
// 交集
List<String> intersection = list1.stream().filter(item -> list2.contains(item)).collect(toList());
// 差集 (list1 - list2)
List<String> reduce1 = list1.stream().filter(item -> !list2.contains(item)).collect(toList());
// 差集 (list2 - list1)
List<String> reduce2 = list2.stream().filter(item -> !list1.contains(item)).collect(toList());
// 并集
List<String> listAll = list1.parallelStream().collect(toList());
List<String> listAll2 = list2.parallelStream().collect(toList());
listAll.addAll(listAll2);
// 去重并集
List<String> listAllDistinct = listAll.stream().distinct().collect(toList());
System.out.println("---得到去重并集 listAllDistinct---“);
// 循环输出
listAllDistinct.parallelStream().forEachOrdered(System.out :: println);
- map的操作,移除
// 通过value移除
map.values().removeIf(value -> !value.contains("1"));
// 通过key移除
map.keySet().removeIf(key -> key != 1);
// key或者value移除
map.entrySet().removeIf(entry -> entry.getKey() != 1);
- 排序操作
// 升序
itemList = itemList.stream().sorted(Comparator.comparingInt(ItemTO::getPtPrice)).collect(Collectors.toList());
// 降叙
itemList = itemList.stream().sorted(Comparator.comparingInt(ItemTO::getPtPrice).reversed()).collect(Collectors.toList());
- groupBy操作
//a
Map<Long,List<Long>> exhibitionPitemMap = list.stream().collect(Collectors.groupingBy(TestDTO1::getLevle1CategoryId, Collectors.mapping(TestDTO1::getPitemId, Collectors.toList())));
//b
Map<Long, List<TestDTO2>> categoryPitemMap = list.stream().collect(Collectors.groupingBy(TestDTO2::getLevle1CategoryId));
- map转list用法
Map<String, String> map = new HashMap<>();
// Convert all Map keys to a List
List<String> result = new ArrayList(map.keySet());
// Convert all Map values to a List
List<String> result2 = new ArrayList(map.values());
// Java 8, Convert all Map keys to a List
List<String> result3 = map.keySet().stream() .collect(Collectors.toList());
// Java 8, Convert all Map values to a List
List<String> result4 = map.values().stream() .collect(Collectors.toList());
// Java 8, seem a bit long, but you can enjoy the Stream features like filter and etc.
List<String> result5 = map.values().stream() .filter(x -> !"apple".equalsIgnoreCase(x)) .collect(Collectors.toList());
- 修改list中的元素值
list.stream().filter(a -> 筛选条件).forEach(b -> b.setOrg("1"));
将list中元素的两个属性分别作为map的key和value
Map<Long, String> idNameMap = userList.stream().collect(Collectors.toMap(UserDO::getId, UserDO::getName, (v1, v2)->v1));
- 将map中的key从String转换成Long
Map<Long, ItemTO> map1 = map.entrySet().stream().collect(Collectors.toMap(e -> Long.parseLong(e.getKey()), Map.Entry::getValue));
- foreach中做查询操作
List<UserTO> userList = userList.stream().filter((userTO) -> {
ClassTO classTO = classManager.getClassById(userTO);
return classTO.getStatus() != null && classTO.getStatus() > 0;
}).collect(Collectors.toList());
- 使用方法生成key
Map<String, UserTO> uidMap = userList.stream().collect(toMap(UserUtil::getKeyByUser, Function.identity(), (m1, m2) -> m1));
public static String getKeyByUser(UserTO userTO) {
return Joiner.on(Constant.UNDERLINE).join(userTO.getId(), userTO.getName());
}
- 对于最小的元素进行重新赋值
userList.stream().min(Comparator.comparingLong(UserTO.getAge)).ifPresent(e->e.setShow(true));
- 将list拼接成string
classTO.setName(userList.stream().map(String::valueOf).collect(joining(Constant.COMMA)));
- 过滤出level>xx的元素
List<UserTO> = userList.stream().filter(u -> u.getLevel() > 2).collect(Collectors.toList());
- 循环map
for (Map.Entry<String,Boolean> e: choices.entrySet()) {
if (!e.getValue()) {
sb.append(sep);
sb.append(e.getKey());
sep = ",";
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。