请问如何确保List中的数据没有重叠的?

pn_nl 2007-03-12 02:54:01
前提是需要保持有序性,所以不能采用Set

如果对List中的每个值都遍历List,来判断List中是不是有重叠的值,效率太低了,不能采用

判断是不是重叠是根据对象的某一个字段来判断的

请问,有没有什么比较好的办法?最好效率比较高
...全文
448 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
iamsangster 2007-03-13
  • 打赏
  • 举报
回复
collections.sort(List ,Compare);
collections.b...search(List,.....);
java_new_comer 2007-03-13
  • 打赏
  • 举报
回复
依据字段来判断的话。上面的程序改动一点就可以了:
Object[] object=(Object[]) list.get(i);
String ob=(String) object[2];
java_new_comer 2007-03-13
  • 打赏
  • 举报
回复
public boolean havaSameElement(){
Map map=new HashMap();
List list= new YourList();
for(int i=0;i<list.size();i++){
Object ob=list.get(i);
if(map.containsKey(ob)){
return false;
}else{
map.put(ob,"");
}
}
return true;
}
ftiger 2007-03-13
  • 打赏
  • 举报
回复
请改成LinkedHashSet
TreeSet会重新排序的。
许飘大叔 2007-03-13
  • 打赏
  • 举报
回复
问题没必要太复杂化吧
捏造的信仰 2007-03-13
  • 打赏
  • 举报
回复
同楼上
谜斯特段 2007-03-13
  • 打赏
  • 举报
回复
add的时候加个判断
if (list.contains(obj)){//如果包含了一个重复的对象,就不加

}
xk2y 2007-03-13
  • 打赏
  • 举报
回复
学习````
diracstar 2007-03-12
  • 打赏
  • 举报
回复
请使用TreeSet
frilly 2007-03-12
  • 打赏
  • 举报
回复
避免重复,你用Hashtable类,不是挺好吗
pn_nl 2007-03-12
  • 打赏
  • 举报
回复
To interpb:
正在试验你说的标志位的方法
Dan1980 2007-03-12
  • 打赏
  • 举报
回复
第一,Set也可以保持有序。
第二,要避免重复,不遍历成员是不可能的,Set的内部也是采用遍历的。
第三,要避免重复,你必须为成员类定义equals()方法(最好同时定义hashCode()方法和compareTo()方法),String对象除外,因为String类已经对这些做了很好的定义了。
shan1119 2007-03-12
  • 打赏
  • 举报
回复
个人觉得List.contains()就挺好。。
lixiaoxue85 2007-03-12
  • 打赏
  • 举报
回复
将List中的数据导入SET,然后再导出来不就可以了~~SET相当于过滤器了
interpb 2007-03-12
  • 打赏
  • 举报
回复
首先你的List里面存放的是什么类型的对象

而且重复值 到底是 对象内存一样 还是紫荆定义的某几个属性相同就是同一个对象

contains 应该也是遍历

你最好在list里面放一个 标志对象

比如这个对象存储了 List里面其他对象的标志位 在插入之前先对调用标志对象的方法

看是不是有重复值 就可以避免遍历 List了
pn_nl 2007-03-12
  • 打赏
  • 举报
回复
Set的确有几个实现可以保持有序,好像LinkedHashSet也可以保持有序

但是因为我这个需求是基于Vector的实现,本身已经有几个类似get(int i)的方法,所以不能改变对外的api,用Set的话,能实现吗?
gongyali2005 2007-03-12
  • 打赏
  • 举报
回复
TreeSet不也是有序的么?
yeah920 2007-03-12
  • 打赏
  • 举报
回复
List.contains()

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧