什么是集合:是一种工具类,就像是容器,存储任意数量的具有共同属性的对象。

 

集合框架图

说明:所有集合类都位于java.util包下。Java的集合类主要由两个接口派生而出:CollectionMap,Collection和Map是Java集合框架的根接口,这两个接口又包含了一些子接口或实现类。
Collection接口

  1. 是List、Set和Queue接口的父接口;
  2. 定义了可用于操作List、Set和Queue的方法——增删改查;
  • List接口及其实现类——ArrayList
    • List(序列),元素有序,并且可重复;
    • List可以精确控制元素的插入位置,或删除指定位置的元素;
    • ArrayList——数组序列,是List的一个重要实现类;
    • ArrayList底层是由数组实现的

    ArrayList

 ArrayList是一个动态数组,也是我们最常用的集合。它允许任何符合规则的元素插入甚至包括null。每一个ArrayList都有一个初始容量(10),该容量代表了数组的大小。随着容器中的元素不断增加,容器的大小也会随着增加。在每次向容器中增加元素的同时都会进行容量检查,当快溢出时,就会进行扩容操作。所以如果我们明确所插入元素的多少,最好指定一个初始容量值,避免过多的进行扩容操作而浪费时间、效率。

LinkedList

    1. 同样实现List接口的LinkedList与ArrayList不同,ArrayList是一个动态数组,而LinkedList是一个双向链表。所以它除了有ArrayList的基本操作方法外还额外提供了get,remove,insert方法在LinkedList的首部或尾部。
    2. 由于实现的方式不同,LinkedList不能随机访问,它所有的操作都是要按照双重链表的需要执行。在列表中索引的操作将从开头或结尾遍历列表(从靠近指定索引的一端)。这样做的好处就是可以通过较低的代价在List中进行插入和删除操作。
  • Set接口及其实现类——HashSet
    • Set(集),元素无序,并且不可以重复;
    • HashSet——哈希集,是Set的一个重要实现类;
  • Map接口
    • key值不能重复,value值可以重复;
    • key对value是多(一)对一的关系;
    • Map接口提供了返回key值集合、value值集合、Entry值集合,的方法;
    • HashMap类
      • HashMap是Map的一个重要实现类,也是最常用的,基于哈希表实现;
      • HashMap中的Entry对象是无序排列的;
      • Key值和value值都可以为null,但是一个HashMap只能有一个Key值为null的映射(Key值不可重复);
  • 迭代器Iterator

Iterator是一个接口,它是集合的迭代器。集合可以通过Iterator去遍历集合中的元素。Iterator提供的API接口如下:

  1. boolean hasNext():判断集合里是否存在下一个元素。如果有,hasNext()方法返回 true。
  2. Object next():返回集合里下一个元素。
  3. void remove():删除集合里上一次next方法返回的元素。

 

posted on 2019-06-10 09:47  走走马观观花  阅读(98)  评论(0编辑  收藏  举报