freyhe

导航

09-0.java容器类总览

0.总览图

image

1.集合概览

Java容器类: Collection和Map

​ Collection接口:单列数据,定义了存取一组对象的方法的集合

​ List:元素有序、可重复的集合

​ Set:元素无序、不可重复的集合

​ Map接口:双列数据,保存具有映射关系“key-value对”的集合

Collection 接口

Collection 接口是 List、Set 和 Queue 接口的父接口,该接口里定义的方法,既可用于操作Set 集合,也可用于操作List 和 Queue 集合。

JDK不提供此接口的任何直接实现,而是提供更具体的子接口(如:Set和List)实现。

在 Java5 之前,Java 集合会丢失容器中所有对象的数据类型,把所有对象都当成Object类型处理;从JDK5.0增加了泛型以后,Java集合可以记住容

器中对象的数据类型。

Collection 关系图

image-20220216215919284

使用Iterator接口遍历集合元素

image-20220216220302506

在程序开发中,经常需要遍历集合中的所有元素。针对这种需求,JDK专门提供了一个接口java.util.IteratorIterator接口也是Java集合中的一员,但它与CollectionMap接口有所不同,Collection接口与Map接口主要用于存储元素,而Iterator主要用于迭代访问(即遍历)Collection中的元素,因此Iterator对象也被称为迭代器。

想要遍历Collection集合,那么就要获取该集合迭代器完成迭代操作,下面介绍一下获取迭代器的方法:

  • public Iterator iterator(): 获取集合对应的迭代器,用来遍历集合中的元素的。

下面介绍一下迭代的概念:

  • 迭代:即Collection集合元素的通用获取方式。在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来,继续在判断,如果还有就再取出出来。一直把集合中的所有元素全部取出。这种取出方式专业术语称为迭代。

Iterator接口的常用方法如下:

  • public E next():返回迭代的下一个元素。
  • public boolean hasNext():如果仍有元素可以迭代,则返回 true。

tips::在进行集合元素取出时,如果集合中已经没有元素了,还继续使用迭代器的next方法,将会发生java.util.NoSuchElementException没有集合元素的错误。

Collection常用方法

Collection是所有单列集合的父接口,因此在Collection中定义了单列集合(List和Set)通用的一些方法,这些方法可用于操作所有的单列集合。方法如下:

  • public boolean add(E e): 把给定的对象添加到当前集合中 。
  • public boolean remove(E e): 把给定的对象在当前集合中删除。
  • public boolean contains(E e): 判断当前集合中是否包含给定的对象。
  • public boolean isEmpty(): 判断当前集合是否为空。
  • public int size(): 返回集合中元素的个数。
  • public Object[] toArray(): 把集合中的元素,存储到数组中。
  • public void clear() :清空集合中所有的元素。

List接口

image-20220216220412995

ArrayList

image-20220216220452805

ArrayList<Object> list = new ArrayList<>();
//list.add(null);
System.out.println(list);
System.out.println(list.size());
System.out.println(list.get(0));//IndexOutOfBoundsException

ArrayList中可以增加null,增加null后 list.size = 1 sys.out(list);//添加后为[null] 添加前为[ ]

LinkedList

image-20220216220520608

Vector

image-20220216220553311

关于List的面试题

image-20220216220731797

Set接口

image-20220216220831004

HashSet

image-20220216220934364

LinkedHashSet

image-20220216221552144

TreeSet

image-20220216221618588

Map

image-20220216221657353

Map关系图总览

image-20220216221730630

HashMap

image-20220307204306335

LinkedHashMap

image-20220216221818681

TreeMap

image-20220216221918899

HashTable

image-20220216222006029

Properties

image-20220216222024027

Collections

类似Arrays

image-20220216222106906

posted on 2022-03-07 21:07  freyhe  阅读(27)  评论(0编辑  收藏  举报