概述
集合的遍历
collection提供了方法-Iterator iterator()
该方法可以获取当前集合元素的迭代器:
* java.util.Iterator接口,迭代器接口,规定了遍历集合的相关操作
* 使用迭代器遍历集合存在的步骤为:
* 问->取->删,其中删除元素不是必要操作
* 不同的集合都提供了遍历自身元素的迭代器实现类,我们无需记住它们的名字,当做Iterator使用即可.
新建一个集合用于后边示例:
Collection c = new ArrayList();
c.add("1");
c.add("#");
c.add("2");
c.add("#");
c.add("3");
c.add("#");
c.add("4");
c.add("#");
c.add("5");
System.out.println("c:"+c);
集合中的元素返回时返回的是object类型,必须经过造型
迭代器的常用方法: boolean hasNext()
询问迭代器是否还有下一个元素可供迭代
注:迭代器默认开始位置是在集合第一个元素之前,因此第一次调用时判断的就是是否有第一个元素,并且无论调用多少次hasNext()方法,迭代器的位置都不会改变.语句方法: E next()
迭代器向后移动一个位置指向集合下一个元素并将其获取.
Iterator it = c.iterator();
while (it.hasNext()){
String str = (String) it.next();
if("#".equals(str)){
it.remove();
}
System.out.println(str);
}
System.out.println(c);
迭代器遍历过程中不得通过集合方法(即下述方法)增删元素,否则会抛出异常
if("#".equals(str)){
c.remove(str);
}
增强型for循环
JDK1.5之后推出的一个新特性
* 可以让我们用相同的语法遍历集合或数组
* 语法:for(类型 变量名 : 集合或数组){... }
新建数组array并输出
String[] array ={"1","2","3","4","5"};
for(int i=0;i<array.length;i++){
String str =array[i];
System.out.println(str);
}
新循环遍历数组会被编译器改成普通for循环
for (String str : array){
System.out.println(str);
}
JDK5之后推出的另一个特性:泛型
泛型也称为参数化类型,允许我们在使用一个类时,传入某个类型来规定其内部的属性,方法的参数或方法返回值的类型,使得我们使用时更加方便.在集合中泛型被广泛使用,用于规定集合中的元素类型.泛型原型为Object,编译器认可 赋值操作时,编译器会检查类型是否匹配,不匹配会编译不通过
//Collection<集合类型,如果规定为String则添加int类型时编译不通过>
//新建一个数组用于示范
Collection<String> c = new ArrayList();
c.add("1");
c.add("2");
c.add("3");
c.add("4");
c.add("5");
System.out.println("c:"+c);
Iterator<String> it =c.iterator();//迭代器
迭代器指定的泛型应当与其遍历的集合泛型一致
while (it.hasNext()){
/*
指定泛型后,获取元素无需再手动造型
*/
String str =(String)it.next();
System.out.println(str);
}
新循环遍历集合会被编译器改回成遍历器遍历
for (Object obj : c){
/*
集合指定泛型后,可直接用元素类型接受元素,编译器会补充造型操作
*/
String str =(String)obj;
System.out.println(str);
}
最后
以上就是纯真裙子为你收集整理的集合的遍历-迭代器-增强型for循环的全部内容,希望文章能够帮你解决集合的遍历-迭代器-增强型for循环所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复