1.stream用法
List<Long> technologyIds = listBy.stream().map(GetProdRecordDTO::getTechnologyId).distinct().collect(Collectors.toList());
String technologyId = StringUtils.strip(technologyIds.toString(), "[]");
List<JrTechnologyInfo> jrTechnologyInfos = jrTechnologyInfoMapper.selectByIds(technologyId);
Map<Long, JrTechnologyInfo> jrTechnologyInfosMap = jrTechnologyInfos.stream().collect(Collectors.toMap(JrTechnologyInfo::getId, Function.identity()));
2.List集合拼接成以逗号分隔的字符串
// 如何把字符串list集合拼接成以逗号分隔的字符串 a,b,c
List<String> list = Arrays.asList("a", "b", "c");
// 第一种方法,可以用stream流
String join = list.stream().collect(Collectors.joining(","));
System.out.println(join); // 输出 a,b,c
// 第二种方法,其实String也有join方法可以实现这个功能
String join = String.join(",", list);
System.out.println(join); // 输出 a,b,c
//通用方法
String join=StringUtils.strip(list,"[]");
System.out.println(join); // 输出 a,b,c
3.比较两个对象是否相等
当我们用equals比较两个对象是否相等的时候,还需要对左边的对象进行判空,不然可能会报空指针异常,我们可以用java.util包下Objects封装好的比较是否相等的方法
Objects.equals(strA, strB);
//源码
public static boolean equals(Object a, Object b) {
return (a == b) || (a != null && a.equals(b));
}
4.两个List集合取交集
List<String> list1 = new ArrayList<>();
list1.add("a");
list1.add("b");
list1.add("c");
List<String> list2 = new ArrayList<>();
list2.add("a");
list2.add("b");
list2.add("d");
list1.retainAll(list2);
System.out.println(list1); // 输出[a, b]