1、.forEach(),List迭代器
public static void main(String[] args) {
List<String> deviceNos=new ArrayList<String>();
deviceNos.add("301F7878445");
deviceNos.add("301F7878466");
deviceNos.add("");
deviceNos.add("301F7878444");
deviceNos.add(null);
deviceNos.stream().forEach(deviceNo ->{
System.out.println(deviceNo);
});
}
console输出:
301F7878445
301F7878466
301F7878444
null
2、.filter()过滤空值,空对象
public static void main(String[] args) {
List<String> deviceNos=new ArrayList<String>();
deviceNos.add("301F7878445");
deviceNos.add("301F7878466");
deviceNos.add("");
deviceNos.add("301F7878444");
deviceNos.add(null);
// 过滤空值或空字符串
List<String> realDeviceNos = deviceNos.stream().filter(string -> StringUtils.isNotEmptyAll(string))
.collect(Collectors.toList());
// 输出
System.out.println("============过滤前 "+deviceNos);
System.out.println("============过滤后 "+realDeviceNos);
}
输出
============过滤前 [301F7878445, 301F7878466, , 301F7878444, null]
============过滤后 [301F7878445, 301F7878466, 301F7878444]
3、.map(),从List集合中取某个字段合并成一个集合
public static void main(String[] args) {
// List<String> deviceNos=new ArrayList<String>();
// deviceNos.add("301F7878445");
// deviceNos.add("301F7878466");
// deviceNos.add("");
// deviceNos.add("301F7878444");
// deviceNos.add(null);
List<DeviceInfo> deviceInfoLst=new ArrayList<DeviceInfo>();
DeviceInfo deviceInfo1=new DeviceInfo();
DeviceInfo deviceInfo2=new DeviceInfo();
DeviceInfo deviceInfo3=new DeviceInfo();
DeviceInfo deviceInfo4=new DeviceInfo();
deviceInfo1.setId(1L);
deviceInfo2.setId(203L);
deviceInfo3.setId(164L);
deviceInfo4.setId(88L);
deviceInfoLst.add(deviceInfo1);
deviceInfoLst.add(deviceInfo2);
deviceInfoLst.add(deviceInfo3);
deviceInfoLst.add(deviceInfo4);
// 从deviceInfoLst集合中取DeviceInfo对象的Id属性封装成List集合
List<Long> deviceIds = deviceInfoLst.stream().map(DeviceInfo::getId)
.collect(Collectors.toList());
// 输出
System.out.println(deviceIds);
}
输出
[1, 203, 164, 88]
4、.distinct(),集合去重取某个字段属性封装成List集合
public static void main(String[] args) {
// List<DeviceInfo> deviceInfoLst=new ArrayList<DeviceInfo>();
// DeviceInfo deviceInfo1=new DeviceInfo();
// DeviceInfo deviceInfo2=new DeviceInfo();
// DeviceInfo deviceInfo3=new DeviceInfo();
// DeviceInfo deviceInfo4=new DeviceInfo();
// deviceInfo1.setId(1L);
// deviceInfo2.setId(203L);
// deviceInfo3.setId(164L);
// deviceInfo4.setId(88L);
//
// deviceInfoLst.add(deviceInfo1);
// deviceInfoLst.add(deviceInfo2);
// deviceInfoLst.add(deviceInfo3);
// deviceInfoLst.add(deviceInfo4);
List<String> deviceNos=new ArrayList<String>();
deviceNos.add("301F7878445");
deviceNos.add("301F7878466");
deviceNos.add("301F7878466");
deviceNos.add("301F7878444");
deviceNos.add("301F7878444");
// 集合去重取某个字段属性封装成List集合
List<String> newDeviceNoLst=new ArrayList<String>();
deviceNos.stream().distinct().forEach((deviceNo)->{newDeviceNoLst.add(deviceNo);});
// 输出
System.out.println(newDeviceNoLst);
}
输出
[301F7878445, 301F7878466, 301F7878444]
5、.removeIf(),删除或移除,当集合中某个对象的某个字段值等于某个值时从集合中删除或移除
public static void main(String[] args) {
// List<String> deviceNos=new ArrayList<String>();
// deviceNos.add("301F7878445");
// deviceNos.add("301F7878466");
// deviceNos.add("301F7878466");
// deviceNos.add("301F7878444");
// deviceNos.add("301F7878444");
List<DeviceInfo> deviceInfoLst=new ArrayList<DeviceInfo>();
DeviceInfo deviceInfo1=new DeviceInfo();
DeviceInfo deviceInfo2=new DeviceInfo();
DeviceInfo deviceInfo3=new DeviceInfo();
DeviceInfo deviceInfo4=new DeviceInfo();
deviceInfo1.setId(1L);
deviceInfo2.setId(203L);
deviceInfo3.setId(164L);
deviceInfo4.setId(88L);
deviceInfoLst.add(deviceInfo1);
deviceInfoLst.add(deviceInfo2);
deviceInfoLst.add(deviceInfo3);
deviceInfoLst.add(deviceInfo4);
// 输出
List<Long> deviceNos = deviceInfoLst.stream().map(DeviceInfo::getId)
.collect(Collectors.toList());
System.out.println("==========删除或移除前 "+deviceNos);
// 删除或移除,当集合中某个对象的某个字段值等于某个值时从集合中删除或移除
deviceInfoLst.removeIf(listItem -> 164== listItem.getId());
// 输出
List<Long> rmDeviceNos = deviceInfoLst.stream().map(DeviceInfo::getId)
.collect(Collectors.toList());
System.out.println("==========删除或移除后 "+rmDeviceNos);
}
输出
==========删除或移除前 [1, 203, 164, 88]
==========删除或移除后 [1, 203, 88]