集合小结

来源:互联网 发布:淘宝网哪里投诉 编辑:程序博客网 时间:2024/06/01 10:07
    一.单列集合 Collection
    1.List接口(有序 有重复)(遍历:普通for ,迭代器, 增强for , toArray方法)
        1.1 ArrayList(查询快 增删慢)***
        1.2 LinkedList(查询慢 增删快)
    2.Set接口(无序无重复)(遍历: 迭代器 , 增强for , toArray方法)
        1.1 HashSet(去重复) 重写hasCode  equals 方法
        1.2 LinkedHashSet
    二.双列集合
        1.HashMap
        2.LinkedHashMap
        
    三.单列集合    Collection 总结
        01.增加元素 add()
            举例:
                ArrayList<String> list=new ArrayList<String>();
                list.add("a");
                list.add("b");
                list.add("c");
                list.add("d");
                list.add("e");
                System.out.println(list);
                结果为[a,b,c,d,e]
                
        02.判断集合中是否包含元素 contains
            //判断list集合中是否包含元素"b"
            boolean b1=list.contains("b");
            System.out.println(b1);
            
        03.清空元素 clear
            list.clear();清空集合中的所有元素
        04.判断集合中是否为空
            list.isEmpty();
    二.遍历集合
        01.迭代器遍历
            ArrayList<String> list =new ArrayList<String>();
            list.add("a");
            list.add("b");
            list.add("c");
            list.add("d");
            //获取迭代器
            Iterator it =list.iterator();
            //循环判断是否有元素可以迭代
            while(it.hasNext(){
                //如果有元素,通过next()方法获取元素
                System.out.println(it.nxet());
            }
            注意:并发修改异常
                    迭代器在遍历集合的同时,集合自己去修改了集合中的元素,这个时候就会产生并发修改异常.
        02.普通for循环
            ArrayList<String> list =new ArrayList<String>();
            list.add("a");
            list.add("b");
            list.add("c");
            list.add("d");
            //普通for循环 注意:Set集合没有索引 所以不能使用
            for(int i=0;i<list.size();i++){
                System.out.println(list.get(i));
            }
        03.增强for循环
            for(String s: list){
                System.out.println(s);
            }
        04.toArray方法
            ArrayList<String> list =new ArrayList<String>();
            Object[] array =list.toArray();
            for(int i=0;i<array.length;i++){
                System.out.println(array[i]);
            }
    三.Set集合
        01.HashSet集合
            去重复---右键生成 hashCode方法  equals方法
            01.String类已经复写了hashCode和equals所以HashSet中存储String对象,不能重复
                //特点:无序,不能重复 ,没有索引
                HashSet<String> set=new HashSet<String>();
                set.add("abcd");
                set.add("bbbb");
                set.add("cccc");
                set.add("abcd");
                System.out.println(set);//结果[bbbb, cccc, abcd]
            02.Student类中复写hashCode和equals 才能保证在HashSet集合中 Student对象不重复
                HashSet<Student> set1=new HashSet<Student>();
                set1.add(new Student("张三丰",65));
                set1.add(new Student("张无忌",30));
                set1.add(new Student("张三丰",65));
                System.out.println(set1);//[[ 张无忌30], [ 张三丰65]]
        02.LinkedHashSet集合
            跟HashSet用法一样
            
    四.双列集合    Map    
        A.Map集合的常用方法
            01.put方法 put(K key, V value)
                给集合添加元素
                HashMap<String, Integer>  map=new HashMap<>();
                map.put("李晨", 28);
                map.put("王宝强", 27);
                map.put("宋哲", 18);
                map.put("邓超", 40);map.put("李晨", 30);
            注意:     添加键值,并且返回被覆盖的值
                    如果集合中有对应的键,返回被覆盖的值
                    如果没有对应的键,返回null
            02.获取键集get(Object key)
                Integer v = map.get("王宝强");
                System.out.println(v);//27
            03.移除键集remove(Object key)
                map.remove("王宝强");
            04.判断是否包含键containsKey(Object key)
                //演示remove(Object key)   移除元素
                Integer v2 = map.remove("宋哲");
                System.out.println(v2);//18
                //演示containsKey(Object key)
                //判断是否包含 键"邓超"
                boolean b1 = map.containsKey("邓超");
                System.out.println(b1);//true
            05.判断是否包含键containsValue(Object key)
                //演示containsValue(Object value)
                //判断是否包含 值40
                boolean b2 = map.containsValue(40);
                System.out.println(b2);//true
        B.两种遍历方式
            01.获取【键值对】entrySet()方式
                //获取【键值对】entrySet
                Set<Entry<String, String>> entrys = map.entrySet();
                //遍历set集合
                for (Entry<String, String> entry : entrys) {
                    //获取entry对象的键和值
                    String key = entry.getKey();
                    String value = entry.getValue();
                    System.out.println(key+"="+value);
                }
            02.获取键值对keySet()方式
                Set<String> keys1 = map.keySet();
                for (String key : keys1) {
                    //通过get方法获取值
                    String value = map.get(key);
                    System.out.println(key+"="+value);
                }
    五.补充Collenctions工具类
        常见的方法:
        二分查找 binarySearch
        列表复制 copy
        列表填充 fill
        列表反转 reverse
        随机置换 shuffle
        自然排序 sort
        互换位置 swap
原创粉丝点击