一、操作集合
-
两个结合数据获取相同部分和不同部分
List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5); List<Integer> list2 = Arrays.asList(4, 5, 6, 7, 8); test.notRepeat(list1,list2); /** * 获取集合中重合/不重合部分 * 不重合部分:!list2.contains(num)) * 重合部分:list2.contains(num)) * @param list1 * @param list2 * @return */ private List notRepeat(List<Integer> list1,List<Integer> list2){ List<Integer> result = list1.stream() .filter(num -> !list2.contains(num)) .collect(Collectors.toList()); System.out.println("不重复的数据:" + result); return result; } 2.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); }
-
集合对象获取所有对象中某一个属性的值返回成集合
List<String> collect = list.stream().map(集合对象::get属性名).collect(Collectors.toList()); //返回值类型根据属性类型决定
-
集合对象过滤筛选出符合条件的对象
YzzComCacheDetailsView comCacheDetailsView = new YzzComCacheDetailsView(); comCacheDetailsView.setDev_id("0"); YzzComCacheDetailsView comCacheDetailsView1 = new YzzComCacheDetailsView(); comCacheDetailsView1.setDev_id("1"); List<YzzComCacheDetailsView> list = new ArrayList<>(); list.add(comCacheDetailsView); list.add(comCacheDetailsView1); List<YzzComCacheDetailsView> collect = list.stream().filter(t -> t.getDev_id().equals("1")).collect(Collectors.toList());
-
集合分页
WzzComCacheView comCacheInfo = new WzzComCacheView(); comCacheInfo.setCacheName("1111"); comCacheInfo.setCacheID(1L); WzzComCacheView comCacheInfo2 = new WzzComCacheView(); comCacheInfo2.setCacheName("222"); comCacheInfo2.setCacheID(2L); WzzComCacheView comCacheInfo3 = new WzzComCacheView(); comCacheInfo3.setCacheName("333"); comCacheInfo3.setCacheID(3L); WzzComCacheView comCacheInfo4 = new WzzComCacheView(); comCacheInfo4.setCacheName("444"); comCacheInfo4.setCacheID(4L); WzzComCacheView comCacheInfo5 = new WzzComCacheView(); comCacheInfo5.setCacheName("555"); comCacheInfo5.setCacheID(5L); WzzComCacheView comCacheInfo6 = new WzzComCacheView(); comCacheInfo6.setCacheName("666"); comCacheInfo6.setCacheID(6L); List<WzzComCacheView> comcachinfoList = new ArrayList<>(); comcachinfoList.add(comCacheInfo); comcachinfoList.add(comCacheInfo2); comcachinfoList.add(comCacheInfo3); comcachinfoList.add(comCacheInfo4); comcachinfoList.add(comCacheInfo5); comcachinfoList.add(comCacheInfo6); System.out.println("分页前-------------------"); comcachinfoList.forEach(System.out::println); int pageNo = 2; int pageSize = 2; List<WzzComCacheView> subList = comcachinfoList.stream().skip((pageNo - 1) * pageSize).limit(pageSize). collect(Collectors.toList()); System.out.println("分页后-------------------"); subList.forEach(System.out::println);
-
集合循环
list.stream().forEach(deviceNo ->{ System.out.println(deviceNo); });
-
集合排序
List<Integer> list = new ArrayList<>(); list.add(1); list.add(5); list.add(4); list.add(3); list.add(7); 1. list.sort((a,b)->a.compareTo(b)); 2. list.sort(Comparator.comparing(a->a));