List用法:根据对象属性排序、筛选、去重
程序员文章站
2022-07-10 09:10:43
前言:太久没更博了,最近总是喜欢看各种博客、各种技术文章,越来越觉得自己知识的匮乏!(学习)...
废话:
太久没更博了,平时看各种博客、各种技术文章,越来越觉得自己知识的匮乏!
最近搞一个很lao的项目,非java语言,数据很乱(用到4、5个库),不想说太多(毕竟也是一个十年的项目了),每天下班只想睡觉,真的懒的更新博客了(是真的懒!)
因为项目使用webservice调用服务(没有直接操作数据库),主要是对数据做一些处理,这里贴一下List的一些使用。
1、根据bean属性筛选
class Example{
private Integer id;
private String name;
}
//这里就不具体示例了
List<Example> exampleList = new ArrayList<>
//根据bean属性筛选
List<Example> filterList = exampleList .stream().filter(
(Example e) -> "name".equals(e.getName())
).collect(Collectors.toList());
2、根据bean属性去重
class Example{
private Integer id;
private String name;
}
//根据bean属性去重
List<Example> examples = new ArrayList<>();
List<Example> examList= new ArrayList<>();
//方法调用
examples .stream().filter(distinctByKey(p -> p.getId())) //filter保留true的值
.forEach(examList::add);
public static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
Map<Object, Boolean> seen = new ConcurrentHashMap<>();
//putIfAbsent方法添加键值对,如果map集合中没有该key对应的值,则直接添加,并返回null,如果已经存在对应的值,则依旧为原来的值。
//如果返回null表示添加数据成功(不重复),不重复(null==null :TRUE)
return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
}
3、根据bean属性排序
class Example{
private Integer id;
private String name;
}
List<Example> examples = new ArrayList<>();
examples .sort(new Comparator<Example>() {
@Override
public int compare(Exampleo1, Exampleo2) {
//升序
return o1.getId().compareTo(o2.getId());
//降序
//return o1.getId().compareTo(o2.getId());
}
});
本文地址:https://blog.csdn.net/qq_40437152/article/details/109581874
推荐阅读
-
C#NPOI.RabbitMQ.EF.Attribute.HttpRuntime.Cache.AD域.List
根据指定字段去重.前端JQuery.Cache.I18N(多语言).data-xx(自定义属性) -
List用法:根据对象属性排序、筛选、去重
-
Java8使用stream实现list中对象属性的合并(去重并求和)
-
C# List 根据对象属性去重的四种方法对比
-
关于java的List集合对象去重及按属性去重的8种方法
-
java8实现List中对象属性的去重方法
-
java8 list中根据对象多属性去重
-
java8 list中根据对象多属性去重
-
java8中List根据某一属性去重
-
List用法:根据对象属性排序、筛选、去重