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


相关推荐

  • secureCRT乱码问题

    一、乱码如下:1、输入命令控制台乱码,如下图所示。二、解决方式:1、点击SercureCRT上排主菜单的“Options”,也就是“选项”菜单,如下图:2、点击【Options】之后,会出现一个下拉列表,我们选择第一个“SessionOptions…”,如下图所示。3、在弹出框中选择目录中的“Appearance”,该功能可以对SercureCRT的外观进行设置,如下图所示。4、S…

    2022年4月6日
  • 使用BigDecimal进行科学计算表示方式的转换

    使用BigDecimal进行科学计算表示方式的转换使用BigDecimal进行科学计算表示方式的转换

    2022年6月17日
  • python爬取股票代码_python爬取所有股票的个股资讯「建议收藏」

    python爬取股票代码_python爬取所有股票的个股资讯「建议收藏」前言由于毕设是要对股票的新闻报道进行情感分析,所以爬取所有股票的个股资是必要的前提工作了。一开始准备直接在东方财富网上爬取所有的个股资讯,但是在获得个股资讯列表的时候要模拟事件。前提工作安装python3(下载地址),在安装的时候选择添加到环境变量,如果没有选择,可以通过【右键我的电脑】->【属性】->【高级系统设置】->【环境变量】->【path】将安装的Python3的…

    2022年10月30日
  • jquery setvalue_jquery on方法

    jquery setvalue_jquery on方法setInterval()方法<!DOCTYPEhtml><html><headlang=”en”><metacharset=”UTF-8″><title></title><scriptsrc=”jquery.js”></script><st…

    2022年9月7日
  • 树莓派 Raspberry Pi 连接 WiFi

    树莓派 Raspberry Pi 连接 WiFi说明开启Wifi的不同情况说明:第一种情况:有显示器和鼠标键盘1.1:桌面操作开启WiFi,包含桌面图形的系统(RaspbianStretchwithdesktop)1.2:通过树莓派配置,适用带桌面或仅命令行的系统。1.3:直接修改配置文件,适用带桌面或仅命令行的系统。第二种情况:无显示器和鼠标键盘2.1:使用另一台可用电脑编辑SD卡(但我尝试不成功,ORZ,望…

    2022年5月18日
  • batchnormalization是什么意思_batchnorm层参数个数

    batchnormalization是什么意思_batchnorm层参数个数1.背景本篇博文主要讲解2015年深度学习领域,非常值得学习的一篇文献:《BatchNormalization:AcceleratingDeepNetworkTrainingbyReducingInternalCovariateShift》,这个算法目前已经被大量的应用,最新的文献算法很多都会引用这个算法,进行网络训练,可见其强大之处非同一般啊。近年来深度学习捷报连连…

    2022年10月14日

发表回复

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

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