java集合类

 

  • 为什么出现集合类
    • 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合类就是存储对象最常用的一种方式。
  • 数组和集合类是容器有何不同
    • 数组虽然可以存储对象,但长度是固定的:集合长度是可变的。数组中可以存储基本数据类型,集合只能存储对象。
  • 集合类的特点
    • 集合只用于存储对象。集合长度是可变的,集合可以存储不同类型的对象。
          
集合框架图
                     
java集合类
 
  • Iterator
    • iterator接口的实现定义在集合内部,这样取出方式就可以直接访问集合内容的元素。那么取出方式就被定义成了内部类。而每一个容器的数据结构不同,所以取出的动作细节也不一样。但是都有共性内容判断和取出。那么可以将写共性抽取。那么这些内部类都符合一个规则。该规则就是Iterator。
    • 如何获取集合的取出对象呢?通过集合一个对待提供的方法。iterator()。
  • Collection
    • List:元素是有序的,元素可以重复。因为该集合体系有索引。
      • ArrayList:底层的数据结构使用的是数据结构。1.2出现
        • 查询速度很快。
        • 增删稍慢。
        • 线程不同步。
        • 默认长度为10增长率为50%。
      • LinkedList:底层使用的链表数据结构。
        • 增删速度很快。
        • 查询稍慢。
      • Vector:底层是数组数据结构。1.0出现
        • 线程同步
        • 被ArrayList替代了。
        • 长度增长率100%。
      • ListIterator
        • List集合特有的迭代器。ListIterator是Iterator的子接口。在迭代时,不可以通过集合对象的方法操作集合中的元素。因为会发生ConcurrentModificationException异常(并发异常)所以,在迭代器时,只能用迭代器的方法操作元素,可是Iterator方法是有限的,只能对元素进行判断,取出,删除的操作,如果想要其他的操作如添加,修改等,就需要使用其子接口,ListIterator。该接口只能通过List集合的listIterator方法获取。
    • Set:元素师无序的,元素不可以重复。该集合没有索引。
      • HashSet:底层数据结构式哈希表。
        • HashSet是如何保证元素的唯一性的呢?
          • 是通过元素的两个方法,hashCode和equals来完成。如果元素的HashCode值相同,才会判断equals是否为true。如果元素的hashCode值不同,不会调用equals。
          • 注意,对于判断元素是否存在,以及删除等操作,依赖的方法是元素的hashCode和equals方法。
      • TreeSet:底层数据结构式二叉树。注:添加元素必须实现Comparable接口或在实例TreeSet时指定比较器
        • 可以对Set集合中的元素进行排序。保证元素唯一性的依据:compareTo方法return 0;
        • TreeSet排序的第一种方式:让元素自身具备比较性。元素需要实现Cmparable接口,覆盖compareTo方法。这种方式也称为元素自然排序,或者叫做默认排序。
        • TreeSet的第二种排序方式。
          • 当元素自身不具备比较性时,或者具备的比较性不是所需要的。这时就需要让集合自身具备比较性。在集合初始化,就有了比较方式。
        • 当两种排序都存在时,以比较器为主。
        • 定义一个类,实现Comparator接口,覆盖compare方法。
    • Properties
      • Properties是hashtable的子类。也就是说它具备map集合的特点。而且它里面存储的键值对都是字符串。是集合中和IO技术相结合的集合容器。
      • 该对象特点:可以用于键值对形式的配置文件的读取存储。
      • properties.load(Reader reader);来通过load方法将读取的配置信息添加到集合中。
 
 

 

你可能感兴趣的:(java,集合,list)