shardsList = new ArrayList<>();ShardsInfoDto shardsInfoDto = new ShardsInfoDto();shardsInfoDto.setIndexName(\"chenming20210416\");shardsInfoDto.setDocs(3);shardsInfoDto.setStore(2.0);ShardsInfoDto shardsInfoDto1 = new ShardsInfoDto();shardsInfoDto1.setIndexName(\"asdasd\");shardsInfoDto1.setDocs(1);shardsInfoDto1.setStore(4.1);
ShardsInfoDto shardsInfoDto2 = new ShardsInfoDto();shardsInfoDto2.setIndexName(\"chenmingasdhkask\");shardsInfoDto2.setDocs(1);shardsInfoDto2.setStore(5.1);
ShardsInfoDto shardsInfoDto3 = new ShardsInfoDto();shardsInfoDto3.setIndexName(\"asdfghjkl\");shardsInfoDto3.setDocs(4);shardsInfoDto3.setStore(3.1);
ShardsInfoDto shardsInfoDto4 = new ShardsInfoDto();shardsInfoDto4.setIndexName(\"lkjhgfds\");shardsInfoDto4.setDocs(2);shardsInfoDto4.setStore(1.1);
ShardsInfoDto shardsInfoDto5 = new ShardsInfoDto();shardsInfoDto5.setIndexName(\"erghjcvghui\");shardsInfoDto5.setDocs(2);shardsInfoDto5.setStore(1.2);
ShardsInfoDto shardsInfoDto6 = new ShardsInfoDto();shardsList.add(shardsInfoDto);shardsList.add(shardsInfoDto1);shardsList.add(shardsInfoDto3);shardsList.add(shardsInfoDto4);shardsList.add(shardsInfoDto2);shardsList.add(shardsInfoDto5);shardsList.add(shardsInfoDto6);2、模糊查询:
String indexName = \"asd\";
shardsList = shardsList.stream().filter(ShardsInfoDto ->
ShardsInfoDto.getIndexName()!=null&&ShardsInfoDto.getIndexName().indexOf(indexName) > -1).collect(Collectors.toList());shardsList.stream().forEach(ShardsInfoDto -> {
System.out.println(ShardsInfoDto.getIndexName());});
ShardsInfoDto.getIndexName()!=null 判断防⽌空指针异常输出结果:
3、单个参数多个值过滤
List shardStateList = new ArrayList<>();shardStateList.add(\"a\");shardStateList.add(\"b\");shardStateList.add(\"c\");shardsList = shardsList.stream().filter(ShardsInfoDto ->
shardStateList.contains(ShardsInfoDto.getShardStates())).collect(Collectors.toList());4、多个参数联合排序:String docsFlag = \"asc\";String storeFlag = \"desc\";//排序
Comparator doc = null;if(\"asc\".equals(docsFlag)){//docs升序doc = Comparator.nullsFirst(Comparator.comparing(ShardsInfoDto::getDocs, Comparator.nullsFirst(Integer::compareTo)));}else if(\"desc\".equals(docsFlag)){//docs降序
doc = Comparator.nullsFirst(Comparator.comparing(ShardsInfoDto::getDocs, Comparator.nullsFirst(Integer::compareTo)).reversed());}
Comparator store = null;if(\"asc\".equals(storeFlag)){//store升序store = Comparator.nullsFirst(Comparator.comparing(ShardsInfoDto::getStore, Comparator.nullsFirst(Double::compareTo)));}else if(\"desc\".equals(storeFlag)){//store降序
store = Comparator.nullsFirst(Comparator.comparing(ShardsInfoDto::getStore, Comparator.nullsFirst(Double::compareTo)).reversed());}
// 联合排序
Comparator finalComparator = doc.thenComparing(store);shardsList.sort(finalComparator);for (ShardsInfoDto dto:shardsList) {System.out.println(\"doc:\"+dto.getDocs()+\}
Comparator.nullsFirst()防⽌参数为空导致空指针异常!结果: