Java中的遍历

本文主要介绍Java中可以使用的几种遍历方式。

定义

遍历(Traversal):指沿着某条搜索路线,依次对树(或图)中每个节点均做一次访问。我自己的理解,“遍历”就是指将所给结构中的内容逐一访问,但是是否进行操作,还要看需求。

循环(for、while)

for(int i=0;i<=arr.length;i++)
white(n != 0)

int[] arr= {1,2,3,4,5,6,7,8,9};
arr.add(4);
对否?

遍历foreach(for)

本身基于Iterator实现,效率不高;不能操作集合。

int[] arr= {1,2,3,4,5,6,7,8,9};
//无需下标
for(int a : arr) {
System.out.println(a);
}

foreach(for)过程中如何修改数据的问题

因为增强for循环(foreach循环)本质上是隐式的iterator,由于在删除和添加的时候会导致modCount发生变化,但是没有重新设置expectedModCount,当你使用list.remove()后遍历执行iterator.next()时,方法检验modCount的值和的expectedModCount值,如果不相等,就会报ConcurrentModificationException。

解决方案

使用iterator.remove();正确与否,待确认

详见Java集合——遍历集合元素并修改

迭代器(Iterator)

迭代器Iterator只能在集合中使用。集合有Connlection 、Map两种, 这两种都是接口类型。Connlection中的子接口有List ,List有实现类 ArrayList。
详细代码看迭代器和SET的遍历

上面各个类型的代码示例,可以参考这篇

java.util.Arrays.toString()

利用jdk自带的方法 --> java.util.Arrays.toString()
待验证

public class ThroughTheArray {	
	public static void main(String[] args) {		
	// TODO Auto-generated method stub
	
	int[] arr = {12,4,1,66,54,6,74,-3};//静态创建一个数组。why,是因为在静态主函数里?
	System.out.println(java.util.Arrays.toString(arr));
	}
}

再推荐几篇文章,感觉写的也很全面。等有时间,再将他们整理到一起:
Java 遍历 原理 代码示例
Java 遍历 增删 代码示例
map上的几种遍历一
map上的几种遍历二

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值