目录
(2)使用 forEach 方法和 Stream API(Java 8及以上)
Java的集合类主要由两个接口派生而出:Collection接口和Map接口。
核心集合接口封装了不同类型的集合,这些接口允许独立于集合表示的细节来操作集合。核心集合接口是Java集合框架的基础。// 注意,Map和Collection是相互独立的
1、Java Collection 接口详解
当涉及Java中的集合框架时,Collection接口是一个重要的核心接口,定义了对一组对象进行操作和管理的通用方法。下面是对Java Collection接口的详细解释:
1)概述:
- Collection接口是Java集合框架的根接口之一,位于java.util包中。
- Collection接口表示一组对象的集合,这些对象可以是任何类型,包括基本类型的包装类和用户自定义类。
- Collection接口是其他集合接口(如List和Set)的父接口,它提供了一组通用的方法,这些方法可以在不同类型的集合上进行操作。// 线性数据结构的通用接口(Map是键值对映射)
2)常用方法:// 对一个数据容器的增删改查操作
- int size():返回集合中的元素数量。
- boolean isEmpty():检查集合是否为空。
- boolean contains(Object obj):检查集合是否包含指定元素。
- boolean add(E element):向集合中添加一个元素。
- boolean remove(Object obj):从集合中移除指定元素。
- void clear():清空集合中的所有元素。
- Iterator<E> iterator():返回一个用于遍历集合的迭代器。
3)迭代器(Iterator):
- Collection接口提供了iterator()方法,用于获取一个实现了Iterator接口的迭代器对象。
- 迭代器可以用于按顺序遍历集合中的元素,通过调用hasNext()方法判断是否还有下一个元素,调用next()方法获取下一个元素。// 迭代器是一种设计模式,通过代码实现
- 迭代器还提供了remove()方法,用于从集合中移除当前元素。
4)数组与集合的转换:
Collection接口提供了两个方法,可以将集合转换为数组,或者将数组转换为集合:
- Object[] toArray():将集合转换为一个对象数组。
- <T> T[] toArray(T[] array):将集合转换为指定类型的数组。
// Collection接口本来就是线性数据结构的通用接口,转为数组也很正常
5)equals() 和 hashCode():
Collection接口继承了equals()和hashCode()方法,用于判断集合的相等性和计算集合的哈希码。
- equals()方法用于比较两个集合是否包含相同的元素,通常需要实现类重写该方法。
- hashCode()方法用于计算集合的哈希码,通常需要实现类重写该方法。
// 使用哈希码可以进行高效的查找和存储操作。需要注意的是,哈希码并不是唯一的,即不同的对象可能具有相同的哈希码(哈希冲突)
6)并发性:
- Collection接口不是线程安全的,如果在多线程环境下使用,需要进行额外的同步控制。
- Java提供了并发集合类,如ConcurrentHashMap和ConcurrentLinkedQueue,用于在多线程环境下进行安全的并发操作。
理解Java Collection接口,可以更好地使用和管理集合对象,并了解集合框架的常用操作和特性。此外,Java提供了许多实现Collection接口的类,包括ArrayList、LinkedList、HashSet、TreeSet等,它们提供了不同的数据结构和特性,可以根据实际需求选择合适的实现类来操作和管理集合。
(1)Java集合之List接口
List接口是Java集合框架中的一种有序、可重复的集合接口,位于java.util包中。它继承自Collection接口,并在其基础上提供了一系列操作有序元素的方法。下面是对List接口的详细解释:
1)概述://有序可重合
- List接口表示一个有序的集合,其中的元素可以按照插入顺序进行访问。
- List允许存储重复的元素,同一个元素可以出现多次。
- List接口继承了Collection接口,因此它包含了Collection接口中定义的大部分方法。
2)主要方法:
添加元素:
- boolean add(E element): 将元素添加到列表的末尾。
- void add(int index, E element): 在指定位置插入元素。
访问元素:
- E get(int index): 获取指定位置的元素。
- int indexOf(Object element): 返回指定元素第一次出现的位置。
修改元素:
- E set(int index, E element): 替换指定位置的元素。
删除元素:
- E remove(int index): 删除指定位置的元素。
- boolean rem