A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wangli1201 初级黑马   /  2019-4-18 18:06  /  704 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1.单列集合
                Collection
        1.1 单列集合的两大派系
                List:有序,可重复的
                    ArrayList 数组--> 查询快(有索引),底层连续,增删慢,数组长度不可变
                        LinkedList 双向链表 --> 查询慢,增删快
                Set:无索引,不可重复
                    LinkedHashSet :有序,不可重复的集合
                        HashSet:底层哈希表  1.7 数组+ 链表  1.8 数组+链表+红黑树
                        HashSet:中无法存储重复元素的原因:(重点,菜J杀手)
                                1.调用HashCode 方法 --> 如果hashCode 元素的索引位置上有元素
                                                                        有元素 :调eqauls
                                                                                          1.相等:不存
                                                                                          2.不相等:挂
                                                                        没元素:放
                        TreeSet:
                                底层可以排序的不可重复的set 集合
                                自然排序和比较器排序  --> 左中右原则                       
                               
                                                                       
        1.2 为什么需要有迭代器这个东西 :编程思想:屏蔽底层不同
            但是在迭代过程中,如果利用集合去修改集合长度,此时会发生并发修改异常
                简单版:解决方案(listIterator)
                复杂版: 底层有期望值和修改值 当调用了迭代方法后,那么就会进行期望值=修改值,
                而在此过程中,如果使用集合修改了长度,修改值发生变化,所以发生了并发修改异常

       
        2.双列集合
        Map 底层是哈希表   
                无序的--> 存進去的顺序和取出来的顺序不一致
                Map的key 是不能重复,Map 的value 无所谓
        map中常见的方法
                遍历
                Map<String,String> hm = new HashMap();
                Set<String> keySet = hm.keySet();
                for(String key : keySet){
                        int value =  hm.get(key)
                }
               
               
                遍历的第二种方式
                Set<Map.Entry<String,String>> entrySet = hm.entrySet();
                for( Map.Entry<String,String> entry   : entrySet){
                           entry.getKey();
                           entry.getValue();
                }
               
                1.arrayList 中有HashMap
                2.HashMap有 arrayList

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马