10_09【Java】集合中遍历器和比较器的使用-Iterator与Comparator接口

本文详细介绍了Java中集合的遍历,包括Iterator接口的使用,如获取迭代器、遍历元素及删除元素,以及聚合操作和增强for循环的遍历方法。此外,还讲解了比较器Comparator和Comparable接口,分析了它们在集合排序中的应用和区别。
摘要由CSDN通过智能技术生成

本文是讲Java的集合中比较器和迭代器的使用,还会涉及到其他遍历集合的方法,包括增强for结构和聚合操作。

一、遍历集合

1、Iterator概述

(1)Iterator的子接口及其继承关系

Iterator接口的子接口如下:

ListIterator, PrimitiveIterator<T,T_CONS>, PrimitiveIterator.OfDouble, PrimitiveIterator.OfInt, PrimitiveIterator.OfLong, XMLEventReader

Iterator 是 Java 迭代器最简单的实现,ListIterator 是 Collection API 中的接口, 它扩展了 Iterator 接口。其继承关系如下图所示:

img

通常情况下,你会希望遍历一个集合中的元素。例如,显示集合中的每个元素。

一般遍历数组都是采用for循环或者增强for,这两个方法也可以用在集合框架,但是还有一种方法是采用迭代器遍历集合框架,它是一个对象,实现了Iterator 接口或 ListIterator接口。

迭代器,使我们能够通过循环来得到或删除集合的元素。ListIterator 继承了 Iterator,以允许双向遍历列表和修改元素。

Java Iterator(迭代器)不是一个集合,它是一种用于访问集合的方法,可用于迭代 ArrayList和 HashSet等集合。

(2)Iterator方法

修饰符/类型 方法名称 描述
default void forEachRemaining(Consumer<? super E> action) 对剩余的每个元素执行给定的操作,直到所有元素都已处理或该操作引发异常。
boolean hasNext() 如果迭代有更多元素,则返回“ true”。
E next() 返回迭代中的下一个元素。
default void remove() 从基础集合中移除此迭代器返回的最后一个元素

集合中的迭代器, 在Java Collections Framework中,迭代器代替了枚举。 迭代器与枚举有以下两种不同:

  • 迭代器允许调用者在迭代期间使用定义明确的语义从基础集合中删除元素。
  • 方法名称得到了改进。

2、Iterator的应用

(1)获取一个迭代器

  • 导入迭代器

Iterator 类位于 java.util 包中,使用前需要引入它,语法格式如下:

import java.util.Iterator; // 引入 Iterator 类
  • 获取迭代器
// 引入 ArrayList 和 Iterator 类
import java.util.ArrayList;
import java.util.Iterator;

public class RunoobTest {
   
    public static void main(String[] args) {
   

        // 创建集合
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Zhihu");

        // 获取迭代器
        Iterator<String> it = sites.iterator();

        // 输出集合中的第一个元素
        System.out.println(it.next());
    }
Console:

Google

(2)迭代器遍历集合的应用

实例1:循环集合元素

让迭代器 it 逐个返回集合中所有元素最简单的方法是使用 while 循环:

while(it.hasNext()) {
   
    System.out.println(it.next(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值