首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

请教怎么确保List中的数据没有重叠的

2012-02-03 
请问如何确保List中的数据没有重叠的?前提是需要保持有序性,所以不能采用Set如果对List中的每个值都遍历Li

请问如何确保List中的数据没有重叠的?
前提是需要保持有序性,所以不能采用Set

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

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

请问,有没有什么比较好的办法?最好效率比较高

[解决办法]
List.contains()
[解决办法]
TreeSet不也是有序的么?
[解决办法]
首先你的List里面存放的是什么类型的对象

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

contains 应该也是遍历

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

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

看是不是有重复值 就可以避免遍历 List了
[解决办法]
将List中的数据导入SET,然后再导出来不就可以了~~SET相当于过滤器了
[解决办法]
个人觉得List.contains()就挺好。。
[解决办法]
第一,Set也可以保持有序。
第二,要避免重复,不遍历成员是不可能的,Set的内部也是采用遍历的。
第三,要避免重复,你必须为成员类定义equals()方法(最好同时定义hashCode()方法和compareTo()方法),String对象除外,因为String类已经对这些做了很好的定义了。
[解决办法]
避免重复,你用Hashtable类,不是挺好吗
[解决办法]
请使用TreeSet
[解决办法]
add的时候加个判断
if (list.contains(obj)){//如果包含了一个重复的对象,就不加

}
[解决办法]
同楼上
[解决办法]
问题没必要太复杂化吧
[解决办法]
请改成LinkedHashSet
TreeSet会重新排序的。

热点排行