我是靠谱客的博主 整齐玉米,最近开发中收集的这篇文章主要介绍Java集合的遍历方式,Iterator,foreach:增强for循环前言一、Iterator:可以用于遍历集合二、foreach:增强for循环,一般用于遍历集合或者数组总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Java集合的遍历方式,Iterator,foreach:增强for循环

  • 前言
  • 一、Iterator:可以用于遍历集合
  • 二、foreach:增强for循环,一般用于遍历集合或者数组
  • 总结


前言

1.toArray(),可以把集合转换成数组,然后遍历数组即可
2.iterator(),可以返回一个迭代器对象,我们可以通过迭代器对象来迭代集合
3.foreach:增强for循环,一般用于遍历集合或者数组


一、Iterator:可以用于遍历集合

E next() :返回下一个元素
boolean hasNext() :判断是否有元素可以获取

代码如下(示例):


//创建集合对象
Collection c = new ArrayList();
//添加元素
c.add("hello");
c.add("world");
c.add("java");
//获取迭代器对象
Iterator it = c.iterator();
//Object next()
:返回下一个元素
//boolean hasNext()
:判断是否有元素可以获取
while(it.hasNext()) {
System.out.println(it.next());
}
  • 注意(1):Exception in thread “main” java.util.NoSuchElementException:使用next方法获取下一个元素,如果没有元素可以获取,则出现NoSuchElementException.

  • 注意(2)需求:判断集合中是否包含元素java,如果有则添加元素android.
    Exception in thread “main” java.util.ConcurrentModificationException:并发修改异常。迭代器是依赖于集合的,相当于集合的一个副本,当迭代器在操作的时候,如果发现和集合不一样,则抛出异常

  • 解决方案:
    你就别使用迭代器
    在使用迭代器进行遍历的时候使用迭代器来进行修改


//创建集合对象
List c = new ArrayList();
//添加元素
c.add("hello");
c.add("world");
c.add("java");
ListIterator lit = c.listIterator();
while(lit.hasNext()) {
String s = (String)lit.next();
if(s.equals("java")) {
lit.add("android");
}
}
System.out.println(c);

二、foreach:增强for循环,一般用于遍历集合或者数组

格式:
for(元素的类型 变量 : 集合或者数组对象) {
可以直接使用变量;
}
注意:在增强for循环中不能修改集合,否则会出现并发修改异常。

public interface Iterable<T>
实现这个接口允许对象成为 "foreach" 语句的目标。

代码如下(示例):

public class ForEachDemo {
public static void main(String[] args) {
//创建集合对象
Collection<String> c = new ArrayList<String>();
//添加元素
c.add("hello");
c.add("world");
c.add("java");
//增强for循环遍历集合
for(Object obj : c) {
System.out.println(obj);
}
for(String s : c) {
s = s.toUpperCase()+"其他的内容";
System.out.println(s);	//改变的只是变量
}
for(String s : c) {
System.out.println(s);	//不变
}
/*for (String string : c) {
c.add("android");
System.out.println(string);
}*/
Collection<Student> c = new ArrayList<Student>();
c.add(new Student("张三",20));
c.add(new Student("李四",18));
for(Student student:c) {
System.out.println("name:"+student.name+"
age:"+student.age);
student.name = student.name+"xx";
//c.add(new Student("王五",22)); 有添加会报错
//c1.remove(student);有删除就集合长度-1,因为长度为2,长度-1之后直接退出。下面会只打印("李四",18)
}
for(Student student:c) {
System.out.println("name:"+student.name+"
age:"+student.age);
}
//集合内容发生变化
}
}
class Student {
String name;
int age;
public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
}

总结

Iterator在遍历中不可以直接对集合进行修改,增加,删除,修改的是迭代器对象。
foreach:增强for循环。在遍历中不可以对集合进行增加,删除看需求,但修改对象一般会改变集合内容(字符串不会)。

最后

以上就是整齐玉米为你收集整理的Java集合的遍历方式,Iterator,foreach:增强for循环前言一、Iterator:可以用于遍历集合二、foreach:增强for循环,一般用于遍历集合或者数组总结的全部内容,希望文章能够帮你解决Java集合的遍历方式,Iterator,foreach:增强for循环前言一、Iterator:可以用于遍历集合二、foreach:增强for循环,一般用于遍历集合或者数组总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部