集合【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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 基于USB数据采集卡(DAQ)与IO模块的热电阻温度采集「建议收藏」

    思迈科华针对热电阻温度传感器温度采集的方案热电阻简介这里主要介绍一下铂热电阻,Pt100是铂热电阻,它的阻值跟温度的变化成正比。PT100的阻值与温度变化关系为:当PT100温度为0℃时它的阻值为100欧姆,在100℃时它的阻值约为138.5欧姆。它的工业原理:当PT100在0摄氏度的时候,它的阻值为100欧姆,它的阻值会随着温度上升而成匀速增长。国标热电阻主要接线方式有三种:二线制:在热电阻的两端各连接一根导线来引出电阻信号的方式叫二线制:这种引线方法很简单,但由于连接导线必然存在引线电阻R,电阻

    2022年4月7日
    54
  • setAttribute的具体用法

    setAttribute的具体用法setAttribute(stringname,stringvalue):增加一个指定名称和值的新属性,或者把一个现有的属性设定为指定的值。1、样式问题setAttribute("cl

    2022年7月1日
    22
  • 三层架构(我了解并详细分析)

    三层架构(我了解并详细分析)

    2021年12月31日
    48
  • c语言中break和continue的用法和区别

    c语言中break和continue的用法和区别break与continue的的用法以及区别1.当它们用在循环语句的循环体时,break用于立即退出本层循环,而continue仅仅结束本次循环(本次循环体内不执continue语句后的其它语句,但下一次循环还会继续执行。2.如果有多层循环时,break只会跳出本层循环,不会跳出其他层的循环.3.break可用于switch语句,表示跳出整个switch语句块,而contin…

    2025年10月25日
    4
  • 永恒之蓝-MS17010 CVE-2017-0146

    永恒之蓝-MS17010 CVE-2017-0146永恒之蓝(EternalBlue)是由美国国家安全局开发的漏洞利用程序,对应微软漏洞编号ms17-010。该漏洞利用工具由一个名为”影子经济人”(ShadowBrokers)的神秘黑客组织于2017年4月14日公开的利用工具之一,该漏洞利用工具针对TCP445端口(ServerMessageBlock/SMB)的文件分享协议进行攻击,攻击成功后将被用来传播病毒木马。由于利用永恒之蓝漏洞利用工具进行传播病毒木马事件多,影响特大,因此很多时候默认将ms17-010漏洞称为“永恒之蓝”。…

    2022年5月27日
    53
  • 魔力宝贝服务端架设_魔力宝贝怀旧手游

    魔力宝贝服务端架设_魔力宝贝怀旧手游CC魔力宝贝服务端setup.cf解释#blserv=211.232.109.164//bl服务器地址#blserv=127.0.0.1//bl服务器端口blserv=222.122.31.125//bl服务器地址blservport=1072//bl服务器端口#blservport=9650//bl服务器端口battledebugmsg=0//战斗debug信息ba…

    2022年10月6日
    3

发表回复

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

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