美文网首页
集合框架

集合框架

作者: 满天星爱我 | 来源:发表于2018-09-25 12:20 被阅读0次

    Collection

    Collection集合是单列集合的顶层接口。Collection表示一组对象,这些对象也称为Collection的元素。该集合的数据结构(简单记就是数据的存储方式)对集合元素有效。

    List

    元素是有序的,元素可以重复。因为该集合体系有索引。

    • ArrayList
      底层的数据结构使用的是数组结构。
      特点:查询速度很快,但是增删稍慢。
    • LinkedList
      底层使用的链表数据结构。特点:增删速度很快,查询稍慢。
    • Vector
      底层是数组数据结构。
    Set

    元素不可以重复。

    • HashSet
      元素无序,底层数据结构是哈希表

    如何保证元素唯一性呢?

    是通过元素的HashCode值相同,才会判断equals方法是否为true
    如果元素的HashCode值不同,就不会调用equals方法
    注意
    对于判断元素是否存在,以及删除等操作,依赖的方法是元素的hashcode和equals方法

    • TreeSet
      元素有序,默认按自然顺序,可以对Set集合中的元素进行排序。
      底层数据结构是二叉树,保证元素唯一性的依据:compareTo方法return 0。
      TreeSet排序的第一种方式:
      让元素自身具备比较性,这种方式也成为元素的自然顺序,或者叫做默认顺序。
      TreeSet第二种排序方式:
      当元素自身不具备比较性时,或者具备的比较性不是所需要的,这时就需要让集合自身具备比较性。
      定义一个类,实现Comparator接口,覆盖compare方法。

    Map

    该集合存储键值对,一对一对往里存,而且保证键的唯一性。

    • Hashtable
      底层是哈希表数据结构,不可以存入null键null值,该集合是线程同步的,jdk1.0,效率低。

    • HashMap
      底层是哈希表数据结构,允许使用null键和null值,该集合是不同步的,jdk1.2,效率高。

    • TreeMap
      底层是二叉树数据结构,线程不同步,可以用于给map集合中的键进行排序
      和Set很想,其实Set底层就是使用了Map集合。

    • map集合的两种取出方式
      1、keySet
      将map中所有的键存入到Set集合,因为Set具备迭代器,所以可以迭代方式取出所有的键,在根据get方法,获取每一个键对应的值。
      2、entrySet
      Set<Map.Entry<k,v>> entrySet
      将map集合中的映射关系存入到了set集合中,而这个关系的数据类型就是:Map.Entry,其实Entry是Map接口中的一个内部接口。

    相关文章

      网友评论

          本文标题:集合框架

          本文链接:https://www.haomeiwen.com/subject/yhxbcftx.html