Java接口总结

本文深入探讨了Java集合框架中的接口概念,包括接口的基本定义、Iterator和ListIterator接口的使用方法,以及它们如何帮助我们遍历集合元素。同时,文章还介绍了Collection接口,对比了Collection与Map的不同,为读者提供了全面的集合类知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是接口?
接口就是表示集合的抽象数据类型。接口允许我们操作集合时不必关注具体实现,从而达到“多态”。

Iterator接口:

Iterator接口,用于遍历集合元素的接口。

在这个接口中定义了三个方法:

  1. hasNext():返回类型为布尔型,如果仍有元素可以迭代,则返回true。
  2. next():返回迭代的下一个元素。
  3. remove():从迭代器指向的collection中移除迭代器返回的最后一个元素。在执行remove操作的时候,不会出现并发修改异常,因为在执行remove操作时,同样会先执行checkForComodification(),然后在执行ArrayList的remove()方法,该方法会将exceptedModCount值加1,使之保持统一。

通过这个接口就能取出Collection集合中的元素,但不用关心每一个具体容器中的数据结构和取出的具体细节,这样就降低了取出元素和具体集合的耦合性。

使用迭代器遍历集合元素:

public static void main(String[] args) {
    List<String> list1 = new ArrayList<>();
    list1.add("1");
    list1.add("2");
    list1.add("3");

    // while循环方式遍历
    Iterator it1 = list1.iterator();
    while (it1.hasNext()) {
        System.out.println(it1.next());
    }

    // for循环方式遍历
    for (Iterator it2 = list1.iterator(); it2.hasNext(); ) {
        System.out.println(it2.next());
    }
}

ListIterator接口
ListIterator是一个功能更加强大的迭代器,它继承于Iterator接口,只能用于各种List类型的访问。可以通过调用listIterator()方法产生一个指向List开始处的ListIterator,还可以调用listIterator(n)方法创建一个一开始就指向列表索引为n的元素处的ListIterator。

特点:

  1. 允许我们向前向后两个方向遍历List;
  2. 在遍历时修改List的元素;
  3. 遍历时获取迭代器当前游标所在的位置。

常用方法:
add():将指定的元素插入到列表
hasNext():如果此列表迭代器在前进方法还有更多的元素时,返回true。
hasPrevious():如果此列表迭代器在相反方向还有更多的元素时,返回true。
next():返回列表中的下一个元素和光标的位置向后推进。
nextIndex():返回调用next()后返回的元素索引。
previous():返回列表中的上一个元素和光标位置向前移动。
previousIndex():返回调用previous()后返回的元素索引。
remove():删除列表中调用next()或previous()的返回最后一个元素。(删除第一个或者最后一个)
set():用指定元素替换列表中调用next()或previous()的返回最后一个元素。

Collection接口
所有集合类都位于java.util包下。Java的集合类只要有两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,这两个接口又包含了一些子接口或实现类。

  • Collection一次存一个元素,是单列集合;
  • Map一次存一对元素,是双列集合。Map存储的一对元素:键-值,键(key)与值(Value)间有对应(映射)关系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值