java集合遍历高级方法

本文介绍了从C语言到Java的过渡,强调了Java中集合和迭代器的便利性。在Java中,使用Iterator接口和增强for循环可以更方便地遍历数组和集合。通过hasNext()和next()方法,可以优雅地控制数组的遍历,而不会出现C语言中需要计算元素个数的问题。同时,讲解了remove()方法的使用及其与Map中remove的区别。

在学习java前,我接触了很久的c,其中学到的第一个集合就是int数组了,其中遍历数组的方式其实还是挺麻烦的。需要进行sizeof(arr)/sizeof(int) 这样对int数组的元素个数进行计算。当然学到字符串时字符可以通过库函数比如Strlen这样的函数来计算长度,再配合while或者for进行遍历。但是在整形浮点之类的数组中没有完善的函数来直接对数组进行操作。因此,在学习了java函数后,容器的概念和便利性让我印象深刻。

java中拥有实现接口和增强的函数来进行遍历。接口可以实现的有Iterator迭代器,还有增强for函数,这两种方式可以替代普通for和while方法来进行遍历。

Iterator实现方法如下。

//定义集合

Collection coll =new Arraylist();//这里定义了一个数组集合

//实现迭代器Iterator

Iterator iter=coll.Iterator;

//然后就可以通过集合来调用迭代器方法了

while(iter.hasNext()){//通过hasNext来判断next上面有没有元素

System.out.println(iter.next());//输出next上的元素。

}

上面可以看出两个方法hasNext和next的两个方法,由于hasNext返回值是boolean类型,所以可以放在while后面的括号中。当然无论在哪个语言中,遍历都是通过指针一个一个调用下一个元素来进行的,所有next指针 顾名思义,是调用下一个元素。通过对其System out可以进行输出。hasNext的最大作用就是限制了next指针的移动位置,通过hasnext可以进行下一个元素的预知。当下一个元素不在集合内返回值为false。中断循环。

注意,hasNext不会导致指针的移动,而next可以导致指针移动所以

while(iter.next()!=null){//调用next去判断下一个指针位置元素是否为空。

System.out.println(iter.next());}//再调用next进行输出

在以上的方法中,next调用了两次,当然第一次是进行判断,那么就会导致判断的时候指针移位。输出的时候指针又向下移位了一格。但是移位两格只输出了后面的那一格。所以导致每次输出会略过一个元素。

所以由此可见hasNext还是不可或缺的方法。

接着就是remove方法,这个方法可以在调用了next方法指针偏移了之后将指针进行归位,也就是直到第一个元素的前面一个位置。此时指针没有指向任意一个元素,因此不能直接输出该位置,要再调用next方法进行输出。

当然在Map中也有个remove方法,那个是移除元素。跟这个用法天壤之别。在此做个区别提示。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值