Collection Map 总集合 实现类 特点一文尽知

来源:互联网 发布:客所思声卡变女声数据 编辑:程序博客网 时间:2024/06/13 09:29

集合的特点

长度可变

适合存储对象类型,操作比较简单

集合的框架体系

Collection单列集合

        (接口)List:               实现类               ArrayList               LinkedList               Vector        (接口)Set:               实现类               HashSet               TreeSet               LinkedHashSet

Map双列集合

        (接口)map:               实现类               HashMap               Hashtable               TreeMap               Properties

Collection接口

常用方法:       add       remove       clear       size       contains       isEmpty       iterator

分类

Set接口

        特点            1、无序的            2、不可以添加重复的元素            3、没有索引           分类            HashSet                特点:                    底层是哈希表结构                    要添加的元素类型 最好重写equals和hashcode方法                原理                    HashSet如何过滤重复项?                注意事项                    两个对象的哈希值一样,用equals判断两个对象  ,结果不一定为 true                    如果equals判断两个对象,结果为true,则两个对象的哈希值肯定一样                    两个不同的对象,哈希值也有可能一样            TreeSet                特点:                    底层是二叉树结构                    可以实现元素的自然排序                实现方式                    方式一:  让要添加的元素类型 实现Comparable接口,重写 compareTo方法                    方式二: TreeSet构造器中指定Comparator接口的对象,重写compare方法                原理                    TreeSet如何过滤重复项            LinkedHashSet                特点                    底层 是链表和 哈希表 的双实现                    存入和取出的顺序是一致的!

List接口

        特点            1、有序的(插入和取出的顺序一致)            2、可以添加重复的元素            3、支持索引        特有方法            add(int index,Object obj)插入            set(int index,Object obj)修改            get(index) 获取指定索引处的元素            remove(int index) 删除指定索引处的元素            indexOf(元素) 获取元素第一次出现的索引            lastIndexOf(元素)获取元素最后一次出现的索引    分类            ArrayList类                特点                    底层采用的是数组结构                    适合做搜索,不适合增删改,(空间是连续的)                    版本较新,线程不安全,不同步,效率比较高            LinkedList                特点                    底层采用的是链表结构                    适合做增删改,不适合搜索(空间是不连续)                特有方法                    addFirst                    addLast                    getFirst                    getLast                    removeFirst                    removeLast            Vector                特点                    版本较老,线程安全的,同步的,效率比较低                    底层采用的是数组结构遍历方式    方式一:使用Iterator    方式二:增强for    List中也可以使用普通for

Map集合

map接口

    特点        存取的是键值对,键不能重复,值可以重复    分类        HashMap实现类            特点                底层是哈希表结构,键是 无序的                一般要重写 hashcode和equals方法                版本比较新,线程不安全、不同步的、效率高,允许null键null值        Hashtable实现类            特点                底层是哈希表结构                版本比较老,线程安全、同步的、效率低,不允许null键null值        TreeMap实现类            特点                底层是二叉树,可以实现 对 键  排序        LinkedHashMap实现类            特点                底层 是链表和 哈希表 的双实现                键的存入和取出的顺序是一致的!        Properties实现类            特点                用于读取和写入属性 文件(xx.properties)            属性文件格式要求                键值对                键和值都要求是String类型            常用方法                load加载属性文件的数据 到Properties集合中                list打印Properties集合中的元素到 指定设备上                store 将集合中的内容 存储到 文件中                setProperty  设置属性                getProperty获取属性    方法        put        remove        size        isEmpty        containsKey        containsValue        get        entrySet        keySet        values

泛型

概念        参数化类型,可以用在 类、接口、方法上标志    <?> <Object>好处        1、解决了编译警告        2、提高了类型安全        3、减少了类型转换的次数,提高效率,代码简洁使用    自定义泛型        泛型类        泛型方法        泛型接口语法注意事项        泛型不支持基本类型,只能放引用类型        泛型支持如备注写法泛型的继承和通配符        没有所谓的泛型继承,比如下面写法是错误        通配符            ? 不限定类型            ? extends 类型,限定 上限            ? super 类型 ,限定了下限Collections    sort排序    max/min求最值    fill填充    reverse反转
0 0
原创粉丝点击