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}是一个对象, 根据对象中最后的两值循环与其他对象的最后两个值判断,不相同则删除对象(得到相同的值)。
展开
11个回答
展开全部
说个大概吧,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().);
}
}
}
大概就这样
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().);
}
}
}
大概就这样
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先转成数组,List.asArray()
然後排序(需要重写实体的compareTo方法),再相邻数据两两比较
这个目的有点奇怪,你的实现思路感觉不是很对。如果是要得到重复数据,为什麼不用Map存呢?
补充:
不相同就删除对象?还是相同就删除对象?
然後排序(需要重写实体的compareTo方法),再相邻数据两两比较
这个目的有点奇怪,你的实现思路感觉不是很对。如果是要得到重复数据,为什麼不用Map存呢?
补充:
不相同就删除对象?还是相同就删除对象?
追问
不相同就删除对象(得到相同数据)
追答
你指删除原来List中的对象,还是说不相同就删除现在这个对象,不把对象存到List中?
换句话说,最后你得到了一系列最后两个值相同的对象的集合是吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没看懂问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询