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

集合的特点

长度可变

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

集合的框架体系

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值