Java集合类系列(3)--遍历集合

Java集合类系列(3)--遍历集合


简单遍历
使用System.out的println()方法
使用System.out的println()方法来输出集合对象时,将输出[ele1,ele2,.....]

Java集合类系列(3)--遍历集合

Java集合类系列(3)--遍历集合
以上代码输出结果为[a, b, c]

使用Iterator接口迭代访问集合元素

不知道大家最开始接触遍历集合元素时使用的是什么方法,我最开始学习Java集合遍历的时候看的是视频教程,其中讲到遍历集合就是使用Iterator接口迭代访问集合元素的,对这种方法还是情有独钟的。
使用Iterator接口遍历集合其实就是使用Iterator中的hasnext和next,使用hasnext来判断集合中的下一个元素是否为空,如果是空则返回false,如果元素不为空则返回true,进入循环体使用next将下一个值打印出来。
示例代码

public static void main(String[] args) {
		
		//创建list对象
		List<String> list = new ArrayList<String>();
		
		//添加数据
		list.add("张三");
		list.add("李四");
		list.add("王二");
		list.add("麻子");
	//使用Iterator遍历集合元素
		
		Iterator<String> iterator = list.iterator();
		
		while (iterator.hasNext()) {
			
			System.out.println(iterator.next());
			
		}

这段代码是以list为准进行Iterator迭代输出,同样对于Set和Map一样是可以使用Iterator进行迭代输出遍历集合元素,使用Iterator进行迭代输出集合元素的关键就是将原有集合转化成Iterator,因为我们最终是要使用hasnext和next进行输出的,只有将原有集合元素进行Iterator转化,我们才能进行hasnext和next的调用,掌握这一点也就掌握了Iterator遍历集合的方法。
另外java8为Iterator新增了一个forEachRemaining方法,我们通过这个方法可以使用Lambda表达式来遍历Iterator,示例如下
public static void main(String[] args) {
		
		//创建list对象
		List<String> list = new ArrayList<String>();
		
		//添加数据
		list.add("张三");
		list.add("李四");
		list.add("王二");
		list.add("麻子");
	//使用Iterator遍历集合元素
		
		Iterator<String> iterator = list.iterator();
		
		iterator.forEachRemaining((String name)->System.out.println(name));


我们可以看到,相比较上一个代码中,红色代码是主要的修改代码,这就是使用Lambda表达式来遍历Iterator。

使用foreach循环遍历集合元素

在上面我们那可以看到使用Iterator的forEachRemaining方法对集合进行遍历一行代码就可以搞定,相比较使用hasnext和next更加简洁方便,但是大家可能对Lambda表达式不太熟悉,那么我们可以使用foreach来循环遍历集合元素。
foreach是Java5的特性,感觉这个方法遍历集合元素真是很简单,话不多的说,让我们来看下如何使用的吧!

public static void main(String[] args) {
		
		//创建list对象
		List<String> list = new ArrayList<String>();
		
		//添加数据
		list.add("张三");
		list.add("李四");
		list.add("王二");
		list.add("麻子");
	//使用foreach遍历集合元素
		
		for (String string : list) {
			System.out.println(string);
		}


这就是foreach遍历集合元素,看起来都很简洁,不妨多尝试一下这样的方法。这段代码什么意思呢?foreach的使用就是使用for(),括号里面是A a:b的形式,b一般就是指的你的集合对象,比如你创建了一个LIst对象,List<String> list = new ArrayList<>(); 那么这个b就是list,前面的A一般就是指的你集合里面的元素类型,而a就是我们要打印的元素的一个变量,把集合里的每一个值赋值给a然后逐个打印输出。


使用Lambda表达式遍历集合

对于简单遍历输出结果一般是[a,b]这种形式,似乎用到的不是太多,我们还可以使用Lambda表达式进行集合的遍历,在讲遍历之前让我们来先简单认识一下Lambda表达式吧!

Lambda表达式

在最开始接触lambda表达式的时候是一头雾水,说白了就是感觉看不懂,不知道怎么使用,lambda表达式是Java8新增的一个特性,简单来说是可以将一些复杂的代码简洁化,我觉得关于lambda表达式这块可以进行专题学习,不然不能都透彻理解它,因为今天主要讲的还是Java集合,其中要使用lambda表达式,因此只做简单介绍。
在我看来lambda最简单的一个形式就是() -> a,什么意思呢?我们再稍微详细的说一下,我们看如下:
1. () -> 5 这代表lambda表达式不需要参数,返回值为5
2. x -> x*3 这代表lambda表达式需要接受一个参数,然后返回这个参数的二倍。
3. (a,b) -> a+b 这代表lambda表达式需要接受两个参数,然后返回这两个参数的和。
等。
相信看到这里我们对lambda表达式似乎有那么点明白了,但是还是有点模糊,别急,我们再继续往下看,我们来举个例子
public static void main(String[] args) {
		
		//创建list对象
		List<String> list = new ArrayList<String>();
		
		//添加数据
		list.add("张三");
		list.add("李四");
		list.add("王二");
		list.add("麻子");
		
	//使用Lambda表达式遍历集合元素
		
		list.forEach((String name)->System.out.println(name));


使用Lambda表达式遍历集合用到了一个foreach默认方法。关于Lambda的学习还可以继续深入,以专题形式进行学习,私下应尽可能找资料自主学习,后续也会单独写一篇有关Lambda表达式的文章!
好了,以上就是一些简单的遍历集合元素的方法了!