怎么判断一个LIST中是否有重复的值

怎么判断一个LIST中是否有重复的值,第1张

把数据加入集合,比如List,可以用contains()()方法查询集合中是否包含当前数据。比如:

List<String>list=new ArrayList<String>()

list.add("abc")

.....

if(list.contains("jkf")) //如果集合中有"jkf",则返回true

如果是要剔除重复数据,加入Set中,会自动剔除重复数据。

怎么判断 list里的值是否相同?分别比较两个List集合的哈希地址、NULL判断,长度判断、和内容判断;

但有一点特别显眼:集合中的元素必须重写equals方法自行判断元素是否相同

原因:containsAll方法的逻辑是逐个contains,而contains的包含逻辑是equals判断;如果集合中的元素没有重写equals方法,那么即使你的元素完全相同,比较的也是不准确。

方法一:将元素用Set.add()方法逐一插入到一个Set中,观察add()方法的返回值,如果返回false说明当前元素重复。元素所属的类需要重写equals()和hashCode()方法。

方法二:将所有元素复制到一个新List中并用List.sort()方法排序,然后遍历该List检查相邻每两个元素是否重复。元素所属的类必须实现Comparable接口。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9964577.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-03
下一篇2023-05-03

发表评论

登录后才能评论

评论列表(0条)

    保存