关于集合中取符合条件的出现的最早的记录的解决方法

问题:我有一个list列表,每个对象里面存有一些字段,这些对象中有mobile相同,但是create_time不相同的,我想保留时间靠前的那条数据,其它的干掉,怎么做比较好?

1、首先想到的是先使用stream来对集合进行分组处理,把mobile相同的放在一个集合中并按时间排序,然后再次对Map集合进行一次循环,取集合中的第一个,这样把所有集合中第一个取出后就获得了你当前需要的一个集合。

2、想了很久,用上面这种方法的处理效率太低,而且数据量大之后,耗费的资源和时间较多,所以放弃了这种方法。我的目光转移到了group by这个方法上,在sql中,对所查的数据进行一次group by之后,只会出现一条符合该条件的数据,所以我尝试查询了一下,果然在对时间进行顺序排序后,group by最终给出的是第一次出现的一条数据,特此记录。

ps:还可以尝试使用distinct,这种方法也可行

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容