java 项目 , List<实体>,需要获取list中的重复数据

如List[{1,2,3,4},{1,3,5,4},{1,3,3,4}]值,list中的{1,2,3,4}是一个对象,根据对象中最后的两值循环与其他对象的最后两个值判断,... 如 List[{1,2,3,4},{1,3,5,4},{1,3,3,4}] 值,list中的 {1,2,3,4}是一个对象, 根据对象中最后的两值循环与其他对象的最后两个值判断,不相同则删除对象(得到相同的值)。 展开
 我来答
WYP362423
推荐于2017-12-15 · TA获得超过3259个赞
知道答主
回答量:139
采纳率:0%
帮助的人:85.5万
展开全部
说个大概吧,list转成map集合如:
map.put("1","{1,2,3,4}")
........

Iterator iter =map.entrySet().iterator();
Map map1=new HashMap();
while (iter.hasNext()) {
Map.Entry entry =(Map.Entry) iter.next();

//取最后两位
String end="{"+entry.getValue().toString().substring(entry.getValue().toString().length()-4);
//取原集合的key为map1的key
map1.put( entry.getKey().toString() , end);

}

///循环
Iterator iter1 =map1.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry =(Map.Entry) iter.next();

//取最后两位
String end="{"+entry.getValue().toString().substring(entry.getValue().toString().length()-4);

while (iter1.hasNext()) {
Map.Entry entry1 =(Map.Entry) iter1.next();

//判断value值是否相等
if(end.equals(entry1.getValue().toString())&&!entry.getKey().toString().equals(entry1.getKey().toString())){
//删除
map.remove(entry.getKey().toString().);
map.remove(entry1.getKey().toString().);
}
}

}

大概就这样
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lovelypig5
2012-10-12 · 超过15用户采纳过TA的回答
知道答主
回答量:63
采纳率:0%
帮助的人:40.2万
展开全部
首先转成数组,List.asArray()
然後排序(需要重写实体的compareTo方法),再相邻数据两两比较
这个目的有点奇怪,你的实现思路感觉不是很对。如果是要得到重复数据,为什麼不用Map存呢?

补充:
不相同就删除对象?还是相同就删除对象?
追问
不相同就删除对象(得到相同数据)
追答
你指删除原来List中的对象,还是说不相同就删除现在这个对象,不把对象存到List中?
换句话说,最后你得到了一系列最后两个值相同的对象的集合是吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
志明与数据
2012-10-12 · TA获得超过348个赞
知道答主
回答量:140
采纳率:0%
帮助的人:27万
展开全部
没看懂问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
evian_shi
2012-10-12
知道答主
回答量:14
采纳率:0%
帮助的人:7.3万
展开全部
for循环
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
清风阁728
2012-10-12
知道答主
回答量:51
采纳率:0%
帮助的人:10.1万
展开全部
cx
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式