Java集合(一)什么是集合

什么是集合

    1、集合类存放于java.util包中。

    2、集合类型主要有3种:set(集)、list(列表)和map(映射)。

    3、集合存放的都是对象的引用,而非对象本身。所以我们称集合中的对象就是集合中对象的引用。

    简单来讲:集合就是一个放数据的容器,准确的说是放数据对象引用的容器。


集合有哪些以及它们之间的关系

Java 集合框架主要结构图


为了能看懂第一张集合框架图,我们先讲解一下在这里会用到的UML类图的知识(这里就不展开具体讲解UML知识)。

1、实现:接口和实现类的关系



2、泛化:父类和子类之间的关系,继承就是泛化的一种



理解了UML类图之后,我们就能从第一张图中分析得知:

1、集合主要分为Collection和Map两个接口

2、Collection又分别被List和Set继承

3、List被AbstractList实现,然后分为3个子类,ArrayList,LinkList和Vector

4、Set被AbstractSet实现,又分为2个子类,HashSet和TreeSet

5、Map被AbstractMap实现,又分为2个子类,HashMap和TreeMap

6、Map被Hashtable实现

Collection 
├List 
│├LinkedList 
│├ArrayList 
│└Vector 
│ └Stack 
└Set 
  ├HashSet 
  └TreesSet 
Map 
├Hashtable 
├HashMap 

└TreeMap  


Collection接口介绍

Collection作用就是规定了一个集合有哪些基本的操作


这里主要是插入数据,清空数据,是否包含,是否相等,集合里的数据个数和转化成数组这几种操作

比如 :

  • int size() 
    • 获取元素个数
    • boolean isEmpty()
    • 是否个数为 0
    • boolean contains(Object element)
    • 是否包含指定元素
    • boolean add(E element)
    • 添加元素,成功时返回 true
    • boolean remove(Object element)
    • 删除元素,成功时返回 true
    • Iterator<E> iterator()
    • 获取迭代器

还有一些操作整个集合的方法,比如 :

  • boolean containsAll(Collection<?> c) 
    • 是否包含指定集合 c 的全部元素
  • boolean addAll(Collection<? extends E> c) 
    • 添加集合 c 中所有的元素到本集合中,如果集合有改变就返回 true
  • boolean removeAll(Collection<?> c) 
    • 删除本集合中和 c 集合中一致的元素,如果集合有改变就返回 true
  • boolean retainAll(Collection<?> c) 
    • 保留本集合中 c 集合中两者共有的,如果集合有改变就返回 true
  • void clear() 
    • 删除所有元素

还有对数组操作的方法:

  • Object[] toArray() 
    • 返回一个包含集合中所有元素的数组
  • <T> T[] toArray(T[] a) 
    • 返回一个包含集合中所有元素的数组,运行时根据集合元素的类型指定数组的类型

在 JDK 8 以后,Collection 接口还提供了从集合获取连续的或者并行流:

  • Stream<E> stream()
  • Stream<E> parallelStream()

于Collection接口相关还有一个抽象类AbstractCollection:

AbstractCollection是一个抽象类,实现了Collection接口的部分功能,实现了一些最基本的通用操作,把复杂的和业务相关的延迟到子类实现。

在AbstractCollection中,主要实现了contains(), isEmpty(), toArray(), remove(), clear() 这几个操作。有兴趣的同学可以自行研究下,逻辑都比较简单。

总结:本章已经简单的介绍了集合框架里面的结构。具体每个集合的分析放到后面的章节

猜你喜欢

转载自blog.csdn.net/B_evan/article/details/80611522