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


相关推荐

  • 使用Golang实现PHP的Addslashes和Stripslashes「建议收藏」

    使用Golang实现PHP的Addslashes和Stripslashes「建议收藏」//addslashes()函数返回在预定义字符之前添加反斜杠的字符串。//预定义字符是://单引号(’)//双引号(”)//反斜杠(\)funcAddslashes(strstring)string{ tmpRune:=[]rune{} s…

    2022年8月30日
    1
  • 什么是RESTful API

    什么是RESTful API

    2021年11月6日
    39
  • django的render函数_reverse函数用法

    django的render函数_reverse函数用法reverse函数reverse函数的作用是用来进行URL反转的,接下来我们介绍reverse函数的几种用法之前我们都是通过url来访问视图函数。有时候我们知道这个视图函数,但是想反转回他的url

    2022年7月30日
    4
  • 功率放大器和匹配网络学习

    功率放大器PA学习导通角:在一个周期内,由电力电子器件(如晶闸管)控制其导通的角度。交流电一般为正弦波,正半周占180°,负半周占180°。当交流电通过可控硅时,可以让交流电电流通过控制使其在0-180度的任一角度处开始导通,即所谓可控整流,当正半周加到可控硅的阳极,在180度的某一角度时,在可控硅的控制极加一触发脉冲,例如在30度加一脉冲,可控硅只能通过余下的150度的电流。这种使可控硅导电…

    2022年4月11日
    43
  • ExecuteNonQuery()_java有返回值和无返回值

    ExecuteNonQuery()_java有返回值和无返回值查询某个表中是否有数据的时候,我用了ExecuteNonQuery(),并通过判断值是否大于0来判断数据的存在与否。结果与我所设想的很不一致,调试时才发现,其执行后返回的结果是-1,对此我很是不理解,回头查了下资料,如下显示:SqlCommand.ExecuteNonQuery方法对连接执行Transact-SQL语句并返回受影响的行数。备注:可以使用ExecuteNonQuery来执行…

    2022年9月12日
    0
  • markdown语法大全(日语一共多少语法)

    最全的Markdown语法Markdown是Github最常见的文档说明。Markdown的语法简洁明了、学习容易。按照官方MarkdownCheatSheet逐个操作一遍自然就会了。[TOC]这个语法在markdown工具里能够识别,但是在这里不能识别。目录代码:文章目录一级标题##二级标题#####多级标题[MENU]效果显示如上多级标题代码:一级标题##二级标题#####多级标题效果一级标题二级标题多级标题引用与注释代码:一级引用>>二级引

    2022年4月15日
    69

发表回复

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

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