集合、数组都是对多个数据进行存储操作的结构,简称java容器
此时的存储,主要针对内存层面的存储忙不涉及到持久化的存储(.txt,.jpq,.avi,等)
因为数组在存储多个数据方面有着一些缺点,所以需要使用集合中的实现类来完成,所以我们先复习一下数组存储多个数据的缺点。
- 数组存储多个数据的缺点:
- 一旦初始化以后,其长度就不可被修改;
- 数组提供的方法非常有限,对于添加、删除、插入数据等操作,非常不便,同时效率不高。
- 数组对于存储数据的特点:有序、可重复。对于无序、不可重复的需求不能满足。
Java集合可以分为 Collection 和 Map 两种体系
- Collection 接口:单列数据,用来存储一个一个的对象
- List 接口:存储有序的、可重复的数据
- 实现类有:ArrayList、LinkedList、Vector
- Set 接口:存储无序的、不可重复的数据
- 实现类有:HashSet、TreeSet
- Map 接口 :双列接口,用来存储一对(key - value)一对的对象
- 实现类有:HashMap TreeMap 等
Collection 接口
Collection集合框架图
Collection中的方法
方法名 | 说明 |
---|---|
boolean isEmpty() | 如果此集合不包含元素,则返回 true 。 |
boolean contains(Object o) | 如果此集合包含指定的元素,则返回true 。 更正式地,返回true如果且仅当该集合至少包含一个元素e使得(o == null ? e==null : o.equals(e)) |
Iterator< E > iterator() | 返回此集合中的元素的迭代器。 没有关于元素返回顺序的保证(除非这个集合是提供保证的某个类的实例)。 |
Object[] toArray() | 返回一个包含此集合中所有元素的数组。 如果此集合对其迭代器返回的元素的顺序做出任何保证,则此方法必须以相同的顺序返回元素。 |
T[] toArray(T[] a) | 返回包含此集合中所有元素的数组; 返回的数组的运行时类型是指定数组的运行时类型。 |
boolean add(E e) | 确保此集合包含指定的元素(可选操作)。 如果此集合由于调用而更改,则返回true 。 (如果此集合不允许重复,并且已包含指定的元素,则返回false。 ) |
boolean remove(Object o) | 从该集合中删除指定元素的单个实例(如果存在)(可选操作)。 更正式地,删除元素e ,使得(o == null ? e==null : o.equals(e)) ,如果该集合包含一个或多个这样的元素。 如果此集合包含指定的元素(或等效地,如果此集合由于调用而更改),则返回true 。 |
boolean containsAll(Collection<?> c) | 如果此集合包含指定 集合中的所有元素,则返回true。 |
boolean addAll(Collection<? extends E> c) | 将指定集合中的所有元素添加到此集合(可选操作)。 如果在操作进行中修改了指定的集合,则此操作的行为是未定义的。 (这意味着如果指定的集合是此集合,此调用的行为是未定义的,并且此集合是非空的。) |
boolean removeAll(Collection<?> c) | 删除指定集合中包含的所有此集合的元素(可选操作)。 此调用返回后,此集合将不包含与指定集合相同的元素。 |
default boolean removeIf(Predicate<? super E> filter) | 删除满足给定谓词的此集合的所有元素。 在迭代或谓词中抛出的错误或运行时异常被转发给调用者。 |
boolean retainAll(Collection< |