一、接口Collection是Java集合类的根接口,作为一个存储容器,用于存储一组对象。主要有两个继承分支,List 以及 Set。

常用的接口方法有:

1、int size();

2、    boolean isEmpty();

3、    boolean contains(Object o);

4、    Iterator<E> iterator();//Collection 接口继承自Iterable,可以作为迭代器的迭代对象

5、    Object[] toArray();

6、    <T> T[] toArray(T[] a);

7、    boolean add(E e);

8、    boolean remove(Object o);

9、    boolean addAll(Collection<? extends E> c);

10、  void clear();

二、List接口

1、接口List是有序的Collection,能够通过索引快速查找到元素。List允许有相同的元素。

2、ArrayList 数组list,底层实现是基于数组的List实现方式。如下图,

Java Collection 集合常用容器组件用法以及区别

    Arraylist不是线程安全的,因为是基于数组的实现方式,根据下标查找,遍历的速度快。

Java Collection 集合常用容器组件用法以及区别

    添加移除的时候 会涉及到元素的移动,效率会降低

Java Collection 集合常用容器组件用法以及区别

 添加元素时,当超过容量时,需要对数组进行扩容,带来效率上的损耗。

Java Collection 集合常用容器组件用法以及区别

     2、LinkedList 基于链表的List的实现,这个容器类也不是线程安全的。链表的好处就是增删的效率高,遍历的效率低。因为遍历会从链头开始遍历。

Java Collection 集合常用容器组件用法以及区别

    只需要简单的操作节点的左右节点就能快速的增加删除元素


 Java Collection 集合常用容器组件用法以及区别

   如果是使用LinkedList作为查找,遍历的对象将是痛苦的。需要从头开始遍历。

Java Collection 集合常用容器组件用法以及区别

    对比ArrayList,LinkedList,ArrayList,LinkedList适合在非多线程情况下,否则会带来多线程的问题。Arraylist可以快速的进行元素的下标获取元素,LinkedList可以进行快速的元素删除,添加操作。

3、Vector

     Vector类似于Arraylist类,Vector是同步的,当在迭代获取Vector的元素时,此时对这个Vector添加元素将会报错。注意这个异常的处理。

4、Stack类

     继承自Vector,实现先进后出的栈容器,基本方法有push() 、pop()、 peak()

二、Set接口

 Set接口是不能包含重复元速度的Collection(集合),Set集合最多有一个null元素。








相关文章:

  • 2023-03-20
  • 2021-03-29
  • 2021-12-20
  • 2021-12-31
  • 2022-12-23
  • 2021-07-25
  • 2021-12-15
  • 2021-08-18
猜你喜欢
  • 2021-09-14
  • 2021-07-17
  • 2021-06-24
  • 2021-07-02
  • 2021-12-29
  • 2021-07-30
相关资源
相似解决方案