精华内容
下载资源
问答
  • List 有方法contains可以判断出List中是否已经有这个值。...1.List的contains(obj)方法实际上,List调用contains(Object obj)方法时,会遍历List中的每一个元素,然后再调用每个元素的equals()方法去跟contains(...

    List 有方法contains可以判断出List中是否已经有这个值。

    如果想去重复可以使用HashSet去重复。

    List list = new ArrayList(new HashSet(a));

    1.List的contains(obj)方法

    实际上,List调用contains(Object obj)方法时,会遍历List中的每一个元素,然后再调用每个元素的equals()方法去跟contains()方法中的参数进行比较,如果有一个元素的equals()方法返回true则contains()方法返回true,否则所有equals()方法都不返回true,则ontains()方法则返回false。因此,重写了Course类的equals()方法,否则,testListContains()方法的第二条输出为false。

    2.Set的Contains(obj)方法

    当调用HashSet的contains(Object obj)方法时,其实是先调用每个元素的hashCode()方法来返回哈希码,如果哈希码的值相等的情况下再调用equals(obj)方法去判断是否相等,只有在这两个方法所返回的值都相等的情况下,才判定这个HashSet包含某个元素。因此,需重写Course类的hashCode()方法和equals()方法。

    3. Map中是否包含指定的Key和Value

    在Map中,用containsKey()方法,判断是否包含某个Key值;用containsValue()方法,判断是否包含某个Value值。

    注:跟List中的Contains()方法一样,Map中的ContainsValue()方法也需要调用某个Value值的equals()方法,去和参数对象进行比较,如果匹配成功,返回结果为true,说明在Map中的Value值确实包含参数对象。因此,需要重写实体类的equals()方法。

    原文链接:https://blog.csdn.net/weixin_38670122/article/details/80570956

    展开全文
  • List 有方法contains可以判断出List中是否已经有这个值。...1.List的contains(obj)方法实际上,List调用contains(Object obj)方法时,会遍历List中的每一个元素,然后再调用每个元素的equals()方法去跟contains(...

    List 有方法contains可以判断出List中是否已经有这个值。

    如果想去重复可以使用HashSet去重复。

    List list = new ArrayList(new HashSet(a));

    1.List的contains(obj)方法

    实际上,List调用contains(Object obj)方法时,会遍历List中的每一个元素,然后再调用每个元素的equals()方法去跟contains()方法中的参数进行比较,如果有一个元素的equals()方法返回true则contains()方法返回true,否则所有equals()方法都不返回true,则ontains()方法则返回false。因此,重写了Course类的equals()方法,否则,testListContains()方法的第二条输出为false。

    2.Set的Contains(obj)方法

    当调用HashSet的contains(Object obj)方法时,其实是先调用每个元素的hashCode()方法来返回哈希码,如果哈希码的值相等的情况下再调用equals(obj)方法去判断是否相等,只有在这两个方法所返回的值都相等的情况下,才判定这个HashSet包含某个元素。因此,需重写Course类的hashCode()方法和equals()方法。

    3. Map中是否包含指定的Key和Value

    在Map中,用containsKey()方法,判断是否包含某个Key值;用containsValue()方法,判断是否包含某个Value值。

    注:跟List中的Contains()方法一样,Map中的ContainsValue()方法也需要调用某个Value值的equals()方法,去和参数对象进行比较,如果匹配成功,返回结果为true,说明在Map中的Value值确实包含参数对象。因此,需要重写实体类的equals()方法。

    原文链接:https://blog.csdn.net/weixin_38670122/article/details/80570956

    展开全文
  • 一、前言 前几天,给一个同事写接口,他的要求是,给我传来一个List ids,... 遍历List集合判断是否在另一个集合中存在,赋值给另一个集合 赋值给Set结合,再返回list集合 【知识补充】可能有一些朋友对Set不熟悉

    一、前言

          前几天,给一个同事写接口,他的要求是,给我传来一个List<String> ids,这个里面可能有重复的id,需要帮她去重。我想这个用循环是比较麻烦的,有什么简单的吗?然后就找到了下面的几个方法,总结一下。

    二、去重思路

          两个思路:

    1.遍历List集合判断是否在另一个集合中存在,赋值给另一个集合

    2.赋值给Set结合,再返回list集合

          【知识补充】可能有一些朋友对Set不熟悉,不了解Set是什么?

           Set是Collection容器的一个子接口,它不允许出现重复元素,当然也只允许有一个null对象。在这里大家了解,它里面不能放重复的信息就行了。

    三、去重方法demo

    • 方法一: 赋值给另一个list2,判断list2是否含有要添加的值(最笨)

          这里判断使用的是,list2.contains(字段)

        @Test
        public void testMap(){
                List<String> list  =   new  ArrayList<String>();
                list.add("6");
                list.add("2");
                list.add("3");
                list.add("1");
                list.add("7");
                list.add("5");
                list.add("2");
                list.add("3");
    
                List<String> newList = new  ArrayList<String>();
                for (String cd:list) {
                    if(!newList.contains(cd)){
                        newList.add(cd);
                    }
                }
                System.out.println( "去重后的集合: " + newList);
        }

          结果:可以看出,使用这种方法,可以达到去重的效果,但是集合中是数据依旧是乱的,没有排序。

    去重后的集合: [6, 2, 3, 1, 7, 5]
    • 方法二、使用set.add(字段)来判断能否添加到set中,如果可以添加,也向新的list.add()中添加一份,不打乱顺序。
       @Test
        public void testMap(){
                List<String> list  =   new  ArrayList<String>();
                list.add("6");
                list.add("2");
                list.add("3");
                list.add("1");
                list.add("7");
                list.add("5");
                list.add("2");
                list.add("3");
    
                Set set = new  HashSet();
                List newList = new  ArrayList();
                for (String cd:list) {
                    if(set.add(cd)){
                        newList.add(cd);
                    }
                }
                System.out.println( "去重后的集合: " + newList);
    
        }

          结果:同样是达到去重,但是没有排序。

    去重后的集合: [6, 2, 3, 1, 7, 5]
    • 方法三、使用Set去重
        @Test
        public void testMap(){
                List<String> list  =   new  ArrayList<String>();
                list.add("6");
                list.add("2");
                list.add("3");
                list.add("1");
                list.add("7");
                list.add("5");
                list.add("2");
                list.add("3");
            //set 去重
            Set set = new  HashSet();
            List newList = new  ArrayList();
            set.addAll(list);
            newList.addAll(set);
    
            System.out.println( "去重后的集合: " + newList);
         }

          结果:网上有朋友说使用HashSet存储是无顺序的,但是小编亲测,是有顺序的。有待考证

    去重后的集合: [1, 2, 3, 5, 6, 7]

          网上还有一个朋友说,使用treeSett,可以去重且按照自然顺序排列

     @Test
        public void testMap(){
                List<String> list  =   new  ArrayList<String>();
                list.add("6");
                list.add("2");
                list.add("3");
                list.add("1");
                list.add("7");
                list.add("5");
                list.add("2");
                list.add("3");
                //去重并且按照自然顺序排列
                List newList = new ArrayList(new TreeSet(list)); 
                System.out.println( "去重后的集合: " + newList);
    }

    四、小结

          没有百不到的,没有G不到的!
          只要自己有想法,百度和谷歌都会有相似的方案,这个就是现在互联网的特点,小编总结的这些东西也是从网上找到的。加油!

    展开全文
  • 2.遍历原容器,将遍历到的元素到临时容器中去判断是否存在 3.如果存在不存储到临时容器中,如果不存在,存储到临时容器中 4.遍历结束后,临时容器中的元素就是惟一性的元素 5.如果需要将这些惟一性的...

    列表(List)是可以允许出现重复的元素, 但是如果现在就要求使用List并且集合中不存在重复的元素
    需求:要求容器中的元素保证唯一性
    思路
    1.先创建一个临时容器,用于存储惟一性的元素
    2.遍历原容器,将遍历到的元素到临时容器中去判断,是否存在
    3.如果存在不存储到临时容器中,如果不存在,存储到临时容器中
    4.遍历结束后,临时容器中的元素就是惟一性的元素
    5.如果需要将这些惟一性的元素保存在原容器中,只要将原容器清空,将临时容器中的元素添加到原容器中
    代码:

    package Collection;
    import java.util.*;
    /*
    使用List   但是要保证集合中的元素的惟一性
    需求:去除 List  集合中的重复
     */
    public class SingleElemen_List {
        public static void main(String[] args){
        List list = new ArrayList();
        list.add("itcast1");
        list.add("itcast2");
        list.add("itcast1");
        list.add("itcast2");
        list.add("itcast1");
    
        getSingleElement(list);
        System.out.println(list);
    
        }
    
        //创建去除重复元素的函数
        public static void getSingleElement(List list) {
            //1.创建临时容器
            List temp = new ArrayList();
            //2.遍历原容器
            for (Iterator it = list.iterator(); it.hasNext(); ) {
                Object obj = it.next();
                //3.判断临时容器中是否存在遍历到的元素
                if (!temp.contains(obj)) {
                    temp.add(obj);
                }
            }
            //4.遍历结束,所有惟一性的元素都已经存储在了临时容器中
            //5.清空原容器,降临时容器中的元素添加到原容器中
            list.clear();
            list.addAll(temp);
        }
    }
    

    运行结果:[itcast1, itcast2]

    List 集合去重复的关键:contains() :判断是否包含的底层代码其实是使用了 equals() 方法
    当元素不是字符串而是自定义类时:包含的判断依据是自定义类的 equals() 定义的规则
    存储自定义的学生对象,相等的规则是:名字和年龄相同

      list.add(new Student("Lisi",20));
            list.add(new Student("Zhangshan",25));
            list.add(new Student("Lisi",20));
            list.add(new Student("Wangwu",18));

    运行结果:[Lisi 20, Zhangshan 25, Wangwu 18]

    展开全文
  • 1. 需求:获取10个1-20之间的随机数,要求不能重复用数组实现,但是数组的长度是固定的... •判断统计遍历是否小于10 是:先产生一个随机数,判断该随机数在集合中是否存在。 如果不存在:就添加,统计变量++。 ...
  • API ----集合 ----泛型 ----List练习 * 用数组实现,但是数组的长度是固定的,长度不好确定。 * 所以我们使用集合实现。 * ... * 是:先产生一个随机数,判断该随机数在集合中是否存在。 *...
  • Java基础知识-去重

    2017-01-18 17:09:00
    判断遍历的元素是否已经存在于resultList,如果不存在,则将这个元素加入到resultList中,否则不加。 通过判断将第二次出现的相同元素过滤掉,只有第一次出现的元素才会被加入到resultList中,这样就得到了sou...
  • 2,遍历原容器,将遍历到的元素到临时容器中去判断是否存在。3,如果存在,不存储到临时容器,如果不存在,存储到临时容器中。4,遍历结束后,临时容器中存储的就是唯一性的元素。5,如果需要将这些唯一性的元素...
  • 题目: 在整数数组中,如果一个整数的出现频次和它的数值大小相等,我们就称这个整数为「幸运数」。...最后遍历list判断是否有幸运数。 class Solution { public int findLucky(int[] arr) { if (arr
  • 2,遍历原容器,将遍历到的元素到临时容器中去判断是否存在。3,如果存在,不存储到临时容器,如果不存在,存储到临时容器中。4,遍历结束后,临时容器中存储的就是唯一性的元素。5,如果需要将这些唯一性的元素...
  • List和Set的区别 List特点:元素有放入顺序,元素可重复; Set特点:元素无放入顺序,不可重复重复的元素会覆盖掉。...向hashSet中add()元素时,判断元素是否存在的依据不仅要比较hash值,同时还要结合equles方法比
  • 一、Set接口的定义 Set接口也是Collection接口的子接口,但是与Collection或List接口不同的是,Set接口中不能加入重复的元素 Set接口的主要方法与...2个常用方法:hasNext方法表示判断是否还有元素可以迭代 ne
  • Object都是装箱,自动装箱,在集合里可以添加数据类型,集合重写,contain判断元素是否存在。Iterator迭代器。用于遍历。hasNext(). 列表list:线性方式存储:数组和向量,链表,堆栈,队列。可以用下标访问元素...
  • 一、Set接口的定义 Set接口也是Collection接口的子接口,但是与Collection或List接口不同的是,Set接口中不能加入重复的元素 ...2个常用方法:hasNext方法表示判断是否还有元素可以迭代 next...
  • JAVA面试题最全集

    2010-03-13 13:09:10
    判断一个文件或目录是否存在 如何读写文件 7.Java多态的实现(继承、重载、覆盖) 8.编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串。 9.Java中访问数据库的步骤,Statement和...
  • 1.Java中利用Set判断List集合中是否有重复元素 list集合允许存在重复元素,但是set集合不允许,所以我们可以将list集合转换为set集合。循环遍历的话,占用资源,浪费时间 //这是我们定义的数组 List<String> ...
  • 实例199 利用标签遍历List集合的元素 实例200 利用JSTL标签导入用户注册协议 8.2 JSTL I18N标签库 275 实例201 利用JSTL标签设置请求的字符编码 实例202 利用JSTL标签实现国际化 实例203 利用显示所有地区的...
  • hashCode()

    2020-03-13 14:49:48
    当新加入一个元素中,首先会在集合中遍历是否存在旧元素和新元素值相等,即用equal()函数。 public boolean equals(Object obj){ return (this == obj); } 很明显是对两个对象的地址值进行的比...
  • 求2个集合的交集

    2014-05-26 18:49:03
    判断是否含有value: ContainsValue(value) 遍历hashtable: Dim de As DictionaryEntry '泛型类 For Each de In hstl console.write(de.key & de.value) Next de hashtable不支持通过value取key. 求2个集合的...
  • oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。...
  • asp.net知识库

    2015-06-18 08:45:45
    如何判断ArrayList,Hashtable,SortedList 这类对象是否相等 帮助解决网页和JS文件中的中文编码问题的小工具 慎用const关键字 装箱,拆箱以及反射 动态调用对象的属性和方法——性能和灵活性兼备的方法 消除由try/...

空空如也

空空如也

1 2
收藏数 24
精华内容 9
关键字:

java遍历list判断是否存在重复

java 订阅