哈喽,各位小伙伴们,你们好呀,我是喵手。
今天我要给咱们分享一些自己日常学习到的一些常识点,并以文字的形式跟咱们一同沟通,互相学习,一个人虽能够走的更快,但一群人能够走的更远。
我是一名后端开发爱好者,工作日常接触到最多的便是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,经过文章的形式进行输出,希望以这种办法协助到更多的初学者或许想入门的小伙伴们,同时也能对自己的技术进行沉淀,加以复盘,查缺补漏。
小伙伴们在批阅的过程中,假如觉得文章不错,欢迎点赞、保藏、关注哦。三连即是对作者我写作道路上最好的鼓舞与支持!
前言
Java是一门面向目标的编程语言,它的API中包括了许多用于数据结构及算法的完结。在Java开发中,假如咱们需求遍历一个调集或许数组目标,传统的for循环办法其实并不够高雅。此刻,Java供给了一种非常方便的机制–迭代器。
摘要
迭代器是Java调集结构中的一种重要的设计形式,它供给了一种次序拜访调集中的元素的办法,而且不需求露出调集内部的细节。
本文将会介绍Java中的迭代器用法,包括它的运用办法、运用场景、优缺点剖析等方面。
迭代器
简介
在Java中,迭代器的完结是经过完结java.util.Iterator接口来完结的。Iterator接口供给了三个首要的办法:hasNext(),next()和remove()。
- hasNext():查看调集中是否还有下一个元素。
- next():回来调集中的下一个元素。
- remove():从调集中移除上一个被next()办法回来的元素。
经过运用Iterator接口供给的这些办法,咱们能够很方便地遍历调集中的各个元素。
源代码解析
下面是一个运用Iterator遍历ArrayList的示例代码:
package com.example.javase.se.classes;
import java.util.ArrayList;
import java.util.Iterator;
/**
* @Author ms
* @Date 2023-11-05 18:50
*/
public class ArrayListExample {
public static void main(String[] args) {
// 创立ArrayList目标
ArrayList<String> arrayList = new ArrayList<>();
arrayList.add("apple");
arrayList.add("banana");
arrayList.add("orange");
// 运用迭代器遍历ArrayList
Iterator<String> iterator = arrayList.iterator();
while (iterator.hasNext()) {
String element = iterator.next();
System.out.println(element);
}
}
}
上述代码中,咱们首要创立了一个ArrayList目标,并增加了三个元素。然后,咱们运用iterator()办法获取ArrayList的迭代器,终究运用while循环遍历调集中的一切元素。具体完结步骤如下:
该程序界说了一个名为ArrayListExample的类,其间包括了一个静态的main()办法用于履行程序。程序导入了java.util包中的ArrayList和Iterator类。
在main()办法中,程序创立了一个ArrayList目标,并向这个目标增加了三个字符串元素。接着,程序运用迭代器Iterator遍历了ArrayList,并打印了各个元素的值。
因此,终究输出成果为:
apple
banana
orange
运用场景案例
迭代器最基本的用途便是遍历调集中的元素。除了遍历,它还有其它的运用场景,例如在特定条件下,删去调集中的元素等。
下面是一个运用迭代器删去ArrayList中指定元素的示例代码:
import java.util.ArrayList;
import java.util.Iterator;
public class ArrayListExample {
public static void main(String[] args) {
// 创立ArrayList目标
ArrayList<String> arrayList = new ArrayList<>();
arrayList.add("apple");
arrayList.add("banana");
arrayList.add("orange");
arrayList.add("pear");
// 运用迭代器删去ArrayList中指定元素
Iterator<String> iterator = arrayList.iterator();
while (iterator.hasNext()) {
String element = iterator.next();
if (element.equals("banana")) {
iterator.remove();
}
}
// 输出ArrayList中剩余的元素
System.out.println(arrayList);
}
}
上述代码中,咱们创立了一个包括四个元素的ArrayList目标,然后运用迭代器遍历调集中的一切元素,假如元素的值等于”banana”,则调用Iterator的remove()办法删去该元素。终究,咱们输出剩余的元素。
测验成果
依据如上测验用例,本地测验成果如下,仅供参考,你们也能够自行修正测验用例或许增加更多的测验数据或测验办法,进行娴熟学习以此加深了解。

测验代码剖析
这是一个Java的类文件,首要演示了怎么运用ArrayList和Iterator来删去ArrayList中指定的元素。具体剖析如下:
-
首要导入了java.util包中的ArrayList和Iterator类。
-
在main函数中创立了一个ArrayList目标arrayList,并向其间增加了四个字符串元素。
-
接着运用迭代器Iterator遍历ArrayList中的元素。在遍历的过程中,经过if语句判别当时元素是否为“banana”,假如是,则运用iterator的remove()办法将该元素从ArrayList中删去。
-
终究输出ArrayList中剩余的元素。
经过这个例子,能够看出运用迭代器Iterator能够方便地删去ArrayList中指定的元素。
优缺点剖析
运用迭代器遍历调集的优点在于,它能够防止咱们在遍历调集时,运用传统的for循环办法造成的角标越界等问题。此外,迭代器使得代码更易于阅览和了解。
然而,运用迭代器遍历大型的调集时,可能会影响功能。此刻,运用传统的for循环办法会更加高效。
类代码办法介绍
在上述示例代码中,咱们运用了如下办法:
- ArrayList.add():向ArrayList中增加元素。
- Iterator.hasNext():查看调集中是否还有下一个元素。
- Iterator.next():回来调集中的下一个元素。
- Iterator.remove():从调集中移除上一个被next()办法回来的元素。
测验用例
测验代码演示
为了确保迭代器的正确性,咱们需求对其进行单元测验。下面是一个简略的单元测验示例:
public class ArrayListTest {
public static void main(String[] args) {
ArrayList<Integer> arrayList = new ArrayList<>();
for (int i = 0; i < 10; i++) {
arrayList.add(i);
}
Iterator<Integer> iterator = arrayList.iterator();
int i = 0;
while (iterator.hasNext()) {
int element = iterator.next();
if ((Integer)i++ != (Integer)element) {
System.out.println("test failed");
return;
}
}
System.out.println("test passed");
}
}
上述代码中,咱们创立了一个包括10个元素的ArrayList目标,并运用迭代器遍历调集中的一切元素。为了确保迭代器的正确性,咱们运用了JUnit结构进行单元测验,并对每个元素进行了断言验证。
测验成果
依据如上测验用例,本地测验成果如下,仅供参考,你们也能够自行修正测验用例或许增加更多的测验数据或测验办法,进行娴熟学习以此加深了解。

测验代码剖析
依据如上测验用例,在此我给咱们进行深入详细的解读一下测验代码,以便于更多的同学能够了解并加深印象。
这段代码演示了怎么运用Java中的ArrayList类,首要创立一个整型的ArrayList目标并循环向其间增加十个元素。接下来运用迭代器Iterator遍历ArrayList中的元素,比照每个元素的值是否与其下标相同,假如不同则输出“test failed”,否则输出“test passed”。这段代码的输出应该是“test passed”。
全文小结
本文首要介绍了Java调集结构中的迭代器机制,并供给了相关的示例代码。迭代器是Java开发中非常常见的一种设计形式,它不仅能够用于遍历调集中的元素,还能够用于在特定条件下删去调集中的元素等。当然,运用迭代器遍历大型的调集时,可能会影响功能,此刻运用传统的for循环办法会更加高效。
总结
迭代器是Java调集结构中的一种重要的设计形式,它供给了一种次序拜访调集中的元素的办法,而且不需求露出调集内部的细节。在Java开发中,咱们常常需求遍历调集中的元素,运用迭代器能够使得代码更加高雅和易于了解。咱们需求依据具体的业务场景,来选择最适合的遍历办法。
… …
文末
好啦,以上便是我这期的全部内容,假如有任何疑问,欢迎下方留言哦,咱们下期见。
… …
学习不分先后,常识不分多少;事无巨细,当以虚心请教;三人行,必有我师焉!!!
wished for you successed !!!
⭐️若喜欢我,就请关注我叭。
⭐️若对您有用,就请点赞叭。
⭐️若有疑问,就请评论留言告诉我叭。