集合【7】— 遍历ArrayList集合三种方法「建议收藏」

集合【7】— 遍历ArrayList集合三种方法「建议收藏」遍历ArrayList集合三种方法何为遍历?逐个获取集合中的每个元素1使用下标2使用forEach循环3使用迭代器Iteratorimportjava.util.ArrayList;importjava.util.Iterator;importjava.util.List;importorg.junit.Test;/***遍历ArrayList集合元素*…

大家好,又见面了,我是你们的朋友全栈君。

集合相关知识总结:

集合【1】 — 综述与ArrayList

集合【2】 — LinkedList

集合【3】 — ArrayList和LinkedList区别与联系(面试题)

集合【4】— Set

集合【5】— Map集合

集合【6】— HashSet存储机制

集合【7】— 遍历ArrayList集合三种方法

集合【8】— 去掉List集合重复的元素


遍历ArrayList集合三种方法

何为遍历?逐个获取集合中的每个元素

1 使用下标遍历ArrayList集合

2 使用forEach循环遍历ArrayList集合

3 使用迭代器Iterator遍历ArrayList集合

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.junit.Test;

/** *遍历ArrayList集合元素 */
public class TestArrayListIterator { 
   

	private List<String> list = new ArrayList<>();
	{ 
   
		list.add("Tom");
		list.add("Sam");
		list.add("Jim");
		list.add("Carry");
		list.add("Merry");
		list.add("Jerry");
		list.add("Terry");
		list.add("Tony");
		list.add("Tomas");
		list.add("Danis");
	}
	
	/** * 使用下标遍历 * 调用测试方法之前,所有的属性已经妥善初始化了 */
	@Test
	public void testIterator1(){ 
   
		for(int i=0;i<list.size();i++){ 
   
			String name = list.get(i);
			System.out.println("name="+name);
		}
	}
	
	/** * 使用forEach循环遍历,跟遍历数组的方式一致 */
	@Test
	public void testIterator2(){ 
   
		for (String name : list) { 
   
			System.out.print(name+"\t");
		}
	}
	
	/** * 使用迭代器进行遍历 * 1 集合转换为迭代器 * 2 判断迭代器有没有下一个元素 * 3 如果有逐行读取元素next() */
	@Test
	public void testIterator3(){ 
   
		//list.iterator() 获取集合的迭代器,将集合转换成Iterator迭代器
		//it.hasNext() 判断集合有没有下一个元素 true有 false没有 
		for(Iterator<String> it = list.iterator();it.hasNext();){ 
   
			//获取集合的下一个元素
			String name = it.next();
			System.out.println(name);
		}
	}
}

Iterator 迭(叠)代器

“叠”字,自己更容易理解,自己创的。重复操作,就相当于叠,一层一层的,然后上一层对下一层还有联系,即每一次迭代得到的结果会作为下一次迭代的初始值

—迭代:Collection 集合元素的通用获取方式:在取元素之前先要判断集合中有没有元素,如果有元素则把元素取出,然后继续再判断下一个元素,如果还有就再取出,直到把集合中的所有元素全部取出为止。这种取出方式专业术语称为迭代。(迭代字面意思: 重复执行一系列过程,而每一次迭代得到的结果会作为下一次迭代的初始值。)

  • Iterator 接口的常用方法如下:

Collection 集合中把这种取元素的方式描述在 Iterator 接口中。

boolean hasNext(); 判断集合中是否有下一个元素可以迭代,如果有,则返回 true。
Object next(); 返回迭代的下一个元素,并把指针向后移动一位。
void remove(); 将迭代器当前返回的元素删除(可选操作)。

对于Iterator而言,因为本身是一个接口,所以要想实例化则必须依靠Collection接口完成,也就是使用Collection接口的Iterator iterator()方法。
Iterator it = list.iterator(); // it 为实例化对象

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163096.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • jboss项目文件路径_java读取一个文件夹下的所有文件

    jboss项目文件路径_java读取一个文件夹下的所有文件==========转自:https://blog.csdn.net/tomcat_2014/article/details/50624120===========JavaWeb中读取文件资源的路径问题转载 2016年02月02日15:34:4916757在做javaweb开发的时候,我们可能会需要从本地硬盘上读取某一个文件资源,或者修改某一个文件,这个时候就需要先找到这个文件,然后用FileI…

    2026年1月22日
    3
  • 2021最新Python全栈工程师学习路线(初级+高级+大神)「建议收藏」

    2021最新Python全栈工程师学习路线(初级+高级+大神)「建议收藏」2019最新Python全栈工程师学习路线(初级+高级+大神)IT行业,技术要比学历、年龄、从业经验更为重要,技术水平直接决定就业薪资,想要学好python,首先要先了解精通Python语言基础、Pythonweb开发、Python爬虫、Python数据分析这四大方面。零基础学习需要要从如下几个阶段入手:阶段一:熟练掌握Python多线程并发编程技术,可以编写爬虫程序和语音识别软件…

    2025年7月17日
    7
  • json字符串数组转json数组

    json字符串数组转json数组当需要把一串字符串转成一个json数组,并遍历其中的内容时。首先要导入net.sf.json.JSONArray和net.sf.json.JSONObject两个jar包<dependency><groupId>net.sf.json-lib</groupId><artifactId>json-lib</artifactId><version>2.4</version><c

    2022年6月21日
    105
  • [机器学习] 实验笔记 – 表情识别(emotion recognition)

    本文主要整理自笔者在表情识别(emotionrecognition)研究上的实验笔记资料,给出了表情识别常用的数据库,论文资料,识别方法,评价指标,以及笔者的实验笔记和实验结果。与读者分享,欢迎讨论。

    2022年4月9日
    138
  • 动态规划:完全背包、多重背包[通俗易懂]

    动态规划:完全背包、多重背包[通俗易懂]一、问题描述:  完全背包:有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。      多重背包:有N种物品和一个容量为V的背包。第i种物品最多有n[i]件可用,每件费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值…

    2022年7月26日
    8
  • modelsim教程

    modelsim教程TheTutorialof Modelsim小狼@http://blog.csdn.net/xiaolangyangyang一、建立库vlibwork(库名)二、映射库到物理目录vmapwork(映射的逻辑名称)work(存放的物理地址)三、编译源代码vlog../src/MUX_4_8.vvlog../src/MU

    2025年8月15日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号