使用迭代器遍历集合
Collection接口下提供的方法
Iterator iterator();
java.util,Iterator接口
三个步骤:1.问 2.取 3.删
/**
* 使用迭代器遍历集合
* Collection接口下提供的方法
* Iterator iterator();
*
* java.util,Iterator接口
* 三个步骤:1.问 2.取 3.删
*/
public class IteratorDemo {
public static void main(String[] args) {
Collection c = new ArrayList();
c.add("one");
c.add("two");
c.add("three");
c.add("four");
c.add("five");
System.out.println(c);
//获得迭代器
Iterator it = c.iterator();
/**
* 判断是否还有下一个元素
*/
while (it.hasNext()){
/**
* 从集合中取出下一个元素
*/
String str = (String)it.next();
System.out.println(str+"!");
/**
* 删:在遍历的过程中,可以删除元素
* 但是不能通过集合的删除方法删除。
* 只能通过迭代器的方法删除
*/
if ("three".equals(str)){
it.remove();
}
}
System.out.println(c);
}
}
JDK1.5开始,支持了一个新的循环语法结构,增强for循环
- 可以更方便的遍历数组和集合对象
- 在编译其会将增强for循环的语法转换成对应的语法内容
- 增强for循环遍历数组
public class NewFoeDemo1 {
public static void main(String[] args) {
String[] arr = {
"one","two","three","four","five"};
// for (int i = 0; i<arr.length;i++){
// System.out.println(arr[i]);
// }
//使用增强for循环替换传统的遍历方法
for (String str:arr){
System.out.println(str);
}
}
}
增强for循环遍历集合
public class NewForDemo2 {
public static void main(String[] args) {
Collection c = new ArrayList();
c.add("one");
c.add("two");
c.add("three");
c.add("four");
c.add("five");
System.out.println(c);
/**
* 使用增强for循环遍历集合
* 编译器在编译时也会将这个操作转换成迭代器
* 所以在使用增强for循环遍历集合时不要对集合元素进行增删操作
*/
for (Object o:c){
System.out.println(o);
}
}
}
- 泛型集合的好处
- 规定了这个集合中元素必须是同一类型的
- 取出元素时无需强制类型转换
- 支持泛型的类型如果不指定反省了类型,默认object
/**
* 泛型集合的好处
* 1. 规定了这个集合中元素必须是同一类型的
* 2. 取出元素时无需强制类型转换
* 支持泛型的类型如果不指定反省了类型,默认object
*/
public class NowForDemo5 {
public static void main(String[] args) {
Collection<String> c = new ArrayList<>();
c.add("one");
c.add("two");
c.add("three");
c.add("four");
c.add("five");
for (String s:c){
//只输出第一个字母
System.out.println(s.charAt(0));
}
Iterator<String> it = c.iterator();
while (it.hasNext()){
String s = it.next();
System.out.println(s);
}
}
}