存放数据的方式:Java集合框架

2023-12-13 17:30:24 浏览数 (1)

文章目录

    • 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编程中,我们经常需要存储和操作一组相关的数据。下面介绍了目前常见的数据存放方式。

  1. 变量: 变量是最简单的数据存放方式,用于保存单个值或对象的引用。例如,可以使用一个int类型的变量来保存一个整数值,使用一个String类型的变量来保存一个字符串。
  2. 对象: 对象是由多个相关联的数据组成的,它可以封装不同类型的数据,并提供对这些数据的操作方法。通过创建类和实例化对象,我们可以将多个数据结合在一起,形成一个自定义的数据类型。
  3. 数组: 数组是用于存储多个相同类型的数据的集合。数组具有固定长度,一旦创建,其大小不能更改。它可以通过索引来访问其中的元素,索引从0开始。但是,数组的操作不够灵活,无法自动进行动态扩容。

2. Java集合框架

Java提供了集合框架来处理存储多个元素的情况,集合框架分为单列集合和双列集合两类。

  1. 单列集合(Collection接口): 单列集合是指每个元素单独存放的集合,常用的子接口包括ListSetQueueSortedSet
    • List: List是有序的集合,可以存储重复的元素。常见的实现类有ArrayListLinkedListVector
    • Set: Set是不允许重复元素的集合,保证元素的唯一性。常见的实现类有HashSetLinkedHashSet
    • Queue: Queue是一种先进先出(FIFO)的集合,通常用于实现队列数据结构。常见的实现类有PriorityQueueLinkedList
    • SortedSet: SortedSet是有序的Set集合,元素按照某种排序规则排列。常见的实现类有TreeSet
  2. 双列集合(Map接口): 双列集合是指存放键值对的集合,其中每个键对应一个唯一的值。常见的实现类有HashMapLinkedHashMapTreeMap

在本文中,我们主要关注单列集合的使用。

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循环的特点和使用方法。希望本文对您有所帮助,欢迎留言交流!

0 人点赞