List去重:根据集合中对象特定属性去重(1)

原始需求如下:根据一个json数组中的元素的特定属性去重。

例如:"[{"plateNumber":"京A00001","model":"tesla90","color":"black"},{"plateNumber":"京A00001","model":"tesla90","color":"black"},{"plateNumber":"京A00001","model":"tesla90","color":"red"}]"
假设我们认为plateNumber相同的元素具有等价性,那么如上json数组可以去重为:[{"plateNumber":"京A00001","model":"tesla90","color":"black"}] 


思路是将一个json数组映射为List<Entity>,利用Set<Entity>本身的特性去重;所以我们需要对Entity覆盖HashCode和Equals方法,为了最小化最实体对象的侵入,并将该去重作为一个通用组件使用,有如下的设计。

注:按照这个设计思路,去重时具体选择保留哪个元素是不确定且无法指定的,算是这个思路的缺陷。有新的想法,欢迎交流探讨。


1.设计一个接口,用来设置去重的依据属性。

public interface Reducible {

	void 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值