请问如何确保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会重新排序的。