Java集合框架

Java集合框架
建材王哥Java集合框架
集合框架概述
集合框架简介
集合框架是一个用来表示和操作集合的统一框架。所有的集合类都位于java.util包下,主要有以下几个特点:
- 集合框架提供了一套性能优良、使用方便的接口和类,使我们可以更轻松地操作数据。
- 集合框架中的接口代表不同的集合类型,如List、Set、Map等。
- 集合框架中的类实现了这些接口,提供了具体的集合实现。
- 集合框架中的迭代器(Iterator)用于遍历集合中的元素。
- 集合框架中的比较器(Comparator)用于对集合中的元素进行排序和比较。
集合框架的结构
集合框架的结构如下所示:
Collection接口
Collection接口简介
Collection接口是Java集合框架中最基本的接口,它定义了一些常用的集合操作方法,如添加元素、删除元素、获取元素等。Collection接口有两个子接口:List和Set。
Collection接口的方法
Collection接口定义了一些常用的方法,如下所示:
boolean add(E e):向集合中添加一个元素。如果添加成功,返回true;否则返回false。boolean addAll(Collection<? extends E> c):将指定集合中的所有元素添加到当前集合中。如果添加成功,返回true;否则返回false。void clear():清空集合中的所有元素。boolean contains(Object o):判断集合中是否包含指定的元素。如果包含,返回true;否则返回false。boolean containsAll(Collection<?> c):判断集合中是否包含指定集合中的所有元素。如果包含,返回true;否则返回false。boolean isEmpty():判断集合是否为空。如果为空,返回true;否则返回false。Iterator<E> iterator():返回一个迭代器,用于遍历集合中的元素。boolean remove(Object o):从集合中删除指定的元素。如果删除成功,返回true;否则返回false。boolean removeAll(Collection<?> c):从集合中删除指定集合中的所有元素。如果删除成功,返回true;否则返回false。boolean retainAll(Collection<?> c):保留集合中与指定集合中相同的元素,删除其他元素。如果保留成功,返回true;否则返回false。int size():返回集合中元素的个数。Object[] toArray():将集合转换为数组。
Collection接口的实现类
Collection接口有很多实现类,常用的有:
ArrayList:实现了List接口,底层使用数组实现,支持随机访问。LinkedList:实现了List接口,底层使用链表实现,支持高效的插入和删除操作。HashSet:实现了Set接口,底层使用哈希表实现,支持高效的查找操作。LinkedHashSet:实现了Set接口,底层使用链表和哈希表实现,支持高效的查找操作,同时保持元素的插入顺序。TreeSet:实现了Set接口,底层使用红黑树实现,支持有序的查找操作。HashMap:实现了Map接口,底层使用哈希表实现,支持高效的查找操作。LinkedHashMap:实现了Map接口,底层使用链表和哈希表实现,支持高效的查找操作,同时保持元素的插入顺序。TreeMap:实现了Map接口,底层使用红黑树实现,支持有序的查找操作。
List接口
List接口简介
List接口是Collection接口的子接口,它表示一个有序的集合,允许重复的元素。List接口提供了很多常用的方法,如添加元素、删除元素、获取元素等。
List接口的方法
List接口定义了一些常用的方法,如下所示:
void add(int index, E element):在指定位置插入一个元素。如果插入成功,返回true;否则返回false。boolean addAll(int index, Collection<? extends E> c):在指定位置插入指定集合中的所有元素。如果插入成功,返回true;否则返回false。E get(int index):获取指定位置的元素。int indexOf(Object o):返回指定元素在列表中第一次出现的索引。如果列表中不包含该元素,则返回-1。int lastIndexOf(Object o):返回指定元素在列表中最后一次出现的索引。如果列表中不包含该元素,则返回-1。ListIterator<E> listIterator():返回一个列表迭代器,用于遍历列表中的元素。ListIterator<E> listIterator(int index):返回一个列表迭代器,从指定位置开始遍历列表中的元素。E remove(int index):删除指定位置的元素,并返回该元素。E set(int index, E element):将指定位置的元素替换为新的元素,并返回旧的元素。List<E> subList(int fromIndex, int toIndex):返回从fromIndex(包含)到toIndex(不包含)之间的子列表。
List接口的实现类
List接口有很多实现类,常用的有:
ArrayList:实现了List接口,底层使用数组实现,支持随机访问。LinkedList:实现了List接口,底层使用链表实现,支持高效的插入和删除操作。Vector:实现了List接口,底层使用数组实现,线程安全,但性能较差。
Set接口
Set接口简介
Set接口是Collection接口的子接口,它表示一个无序的集合,不允许重复的元素。Set接口提供了很多常用的方法,如添加元素、删除元素、获取元素等。
Set接口的方法
Set接口定义了一些常用的方法,如下所示:
boolean add(E e):向集合中添加一个元素。如果添加成功,返回true;否则返回false。boolean addAll(Collection<? extends E> c):将指定集合中的所有元素添加到当前集合中。如果添加成功,返回true;否则返回false。void clear():清空集合中的所有元素。boolean contains(Object o):判断集合中是否包含指定的元素。如果包含,返回true;否则返回false。boolean containsAll(Collection<?> c):判断集合中是否包含指定集合中的所有元素。如果包含,返回true;否则返回false。boolean isEmpty():判断集合是否为空。如果为空,返回true;否则返回false。Iterator<E> iterator():返回一个迭代器,用于遍历集合中的元素。boolean remove(Object o):从集合中删除指定的元素。如果删除成功,返回true;否则返回false。boolean removeAll(Collection<?> c):从集合中删除指定集合中的所有元素。如果删除成功,返回true;否则返回false。boolean retainAll(Collection<?> c):保留集合中与指定集合中相同的元素,删除其他元素。如果保留成功,返回true;否则返回false。int size():返回集合中元素的个数。
Set接口的实现类
Set接口有很多实现类,常用的有:
HashSet:实现了Set接口,底层使用哈希表实现,支持高效的查找操作。LinkedHashSet:实现了Set接口,底层使用链表和哈希表实现,支持高效的查找操作,同时保持元素的插入顺序。TreeSet:实现了Set接口,底层使用红黑树实现,支持有序的查找操作。
Map接口
Map接口简介
Map接口是Java集合框架中用于存储键值对的数据结构。Map接口提供了很多常用的方法,如添加键值对、删除键值对、获取键值对等。
Map接口的方法
Map接口定义了一些常用的方法,如下所示:
V put(K key, V value):将指定的键值对添加到Map中。如果Map中已经存在该键,则用新的值替换旧的值,并返回旧的值。V get(Object key):根据指定的键获取对应的值。如果Map中不存在该键,则返回null。V remove(Object key):根据指定的键删除对应的键值对,并返回被删除的值。如果Map中不存在该键,则返回null。boolean containsKey(Object key):判断Map中是否包含指定的键。如果包含,返回true;否则返回false。boolean containsValue(Object value):判断Map中是否包含指定的值。如果包含,返回true;否则返回false。Set<K> keySet():返回Map中所有键的集合。Collection<V> values():返回Map中所有值的集合。Set<Map.Entry<K, V>> entrySet():返回Map中所有键值对的集合。int size():返回Map中键值对的个数。void clear():清空Map中的所有键值对。
Map接口的实现类
Map接口有很多实现类,常用的有:
HashMap:实现了Map接口,底层使用哈希表实现,支持高效的查找操作。LinkedHashMap:实现了Map接口,底层使用链表和哈希表实现,支持高效的查找操作,同时保持元素的插入顺序。TreeMap:实现了Map接口,底层使用红黑树实现,支持有序的查找操作。Hashtable:实现了Map接口,底层使用哈希表实现,线程安全,但性能较差。ConcurrentHashMap:实现了Map接口,底层使用分段锁实现,支持并发访问,性能较好。
Iterator接口
Iterator接口简介
Iterator接口是Java集合框架中用于遍历集合中的元素。Iterator接口提供了一些常用的方法,如获取下一个元素、删除当前元素等。
Iterator接口的方法
Iterator接口定义了一些常用的方法,如下所示:
boolean hasNext():判断集合中是否还有下一个元素。如果有,返回true;否则返回false。E next():获取集合中的下一个元素。如果已经没有下一个元素,则抛出NoSuchElementException异常。default void remove():删除集合中的当前元素。如果当前元素已经被删除,则抛出IllegalStateException异常。
Iterator接口的实现类
Iterator接口有很多实现类,常用的有:
ArrayListIterator:实现了ListIterator接口,用于遍历ArrayList中的元素。LinkedListIterator:实现了ListIterator接口,用于遍历LinkedList中的元素。HashSetIterator:实现了Iterator接口,用于遍历HashSet中的元素。LinkedHashSetIterator:实现了Iterator接口,用于遍历LinkedHashSet中的元素。TreeSetIterator:实现了Iterator接口,用于遍历TreeSet中的元素。HashMapIterator:实现了Iterator接口,用于遍历HashMap中的元素。LinkedHashMapIterator:实现了Iterator接口,用于遍历LinkedHashMap中的元素。TreeMapIterator:实现了Iterator接口,用于遍历TreeMap中的元素。
总结
Java集合框架提供了多种数据结构,如List、Set和Map,用于存储和管理数据。每种数据结构都有其特点和适用场景,可以根据具体需求选择合适的数据结构。同时,Java集合框架还提供了一些常用的方法,如添加元素、删除元素、获取元素等,方便我们对集合进行操作。

