文章目录
- 1. 目前存放数据的方式
- 2. Java集合框架
- 3. Collection接口常用方法解析
- `public boolean add(E e)`
- `public void clear()`
- `public boolean remove(E e)`
- `public boolean contains(E e)`
- `public boolean isEmpty()`
- `public int size()`
- `public Object[] toArray()`
- 4. 迭代器
- 5. 增强for循环
1. 目前存放数据的方式
在Java编程中,我们经常需要存储和操作一组相关的数据。下面介绍了目前常见的数据存放方式。
- 变量:
变量是最简单的数据存放方式,用于保存单个值或对象的引用。例如,可以使用一个
int
类型的变量来保存一个整数值,使用一个String
类型的变量来保存一个字符串。 - 对象: 对象是由多个相关联的数据组成的,它可以封装不同类型的数据,并提供对这些数据的操作方法。通过创建类和实例化对象,我们可以将多个数据结合在一起,形成一个自定义的数据类型。
- 数组: 数组是用于存储多个相同类型的数据的集合。数组具有固定长度,一旦创建,其大小不能更改。它可以通过索引来访问其中的元素,索引从0开始。但是,数组的操作不够灵活,无法自动进行动态扩容。
2. Java集合框架
Java提供了集合框架来处理存储多个元素的情况,集合框架分为单列集合和双列集合两类。
- 单列集合(Collection接口):
单列集合是指每个元素单独存放的集合,常用的子接口包括
List
、Set
、Queue
和SortedSet
。- List: List是有序的集合,可以存储重复的元素。常见的实现类有
ArrayList
、LinkedList
和Vector
。 - Set: Set是不允许重复元素的集合,保证元素的唯一性。常见的实现类有
HashSet
和LinkedHashSet
。 - Queue: Queue是一种先进先出(FIFO)的集合,通常用于实现队列数据结构。常见的实现类有
PriorityQueue
和LinkedList
。 - SortedSet: SortedSet是有序的Set集合,元素按照某种排序规则排列。常见的实现类有
TreeSet
。
- List: List是有序的集合,可以存储重复的元素。常见的实现类有
- 双列集合(Map接口):
双列集合是指存放键值对的集合,其中每个键对应一个唯一的值。常见的实现类有
HashMap
、LinkedHashMap
和TreeMap
。
在本文中,我们主要关注单列集合的使用。
3. Collection接口常用方法解析
public boolean add(E e)
将给定的对象添加到当前集合中。
public void clear()
清空集合中所有的元素。
public boolean remove(E e)
从当前集合中删除给定的对象。
public boolean contains(E e)
判断当前集合中是否包含给定的对象。
public boolean isEmpty()
判断当前集合是否为空。
public int size()
返回集合中元素的个数。
public Object[] toArray()
将集合中的元素存储到数组中。
4. 迭代器
迭代器是用于遍历集合中元素的对象,它提供了一种统一的遍历方式,不依赖于集合的具体实现。
代码语言:javascript复制public interface Iterator<E> {
boolean hasNext(); // 问一问容器中还有没有元素
E next(); // 获取到下一个元素
void remove(); // 移除当前元素
}
迭代器的工作原理是,在调用next()
方法之前,迭代器的索引位于第一个元素之前,不指向任何元素。当第一次调用next()
方法后,迭代器的索引会向后移动一位,指向第一个元素并返回该元素的值。再次调用next()
方法时,迭代器的索引会指向第二个元素并返回该元素的值,依此类推,直到hasNext()
方法返回false,表示到达了集合的末尾,遍历结束。
5. 增强for循环
增强for循环是Java5引入的一种新循环结构,也称为foreach循环。它可以更简洁地遍历数组或集合中的元素,使代码更加易读。
代码语言:javascript复制for (元素的类型 元素的名称 : 需要遍历的容器) {
// 执行遍历操作
}
需要注意的是,增强for循环不能在遍历过程中删除元素(使用remove
方法),否则会抛出java.util.ConcurrentModificationException
异常。如果需要在遍历过程中删除元素,应该使用迭代器方式进行删除。
增强for循环的底层实现其实是使用了迭代器,因此它也具有类似于迭代器的限制。
通过学习本文,您可以了解Java中目前常见的数据存放方式和集合框架的基本概念。同时,了解了集合接口和迭代器的常用方法以及增强for循环的特点和使用方法。希望本文对您有所帮助,欢迎留言交流!