java中的List接口实现类的遍历方式
List接口实现类主要有:ArrayList,LinkedList,Vector【三者区别,可以看看java集合.xmind文件】
一. ArrayList类的遍历:
1 public class ListBianLiTest { 2 public static void main(String[] args) { 3 ArrayList arrayList = new ArrayList(); 4 arrayList.add("hello"); 5 arrayList.add("world"); 6 arrayList.add("java"); 7 arrayList.add(true); 8 arrayList.add(new Person("大白",20)); 9 10 System.out.println("===迭代器循环==="); 11 // 第一种方式:生成迭代器 12 // 当需要迭代器再次遍历时,重置迭代器,iterator = arrayList.iterator(); 13 Iterator iterator = arrayList.iterator(); 14 // 快捷键:itit 15 while (iterator.hasNext()) { 16 // 遍历过程中如果想调用指定对象的特定方法,则需要向下转型。【多态】 17 Object obj = iterator.next(); 18 if(obj instanceof Person){ 19 Person person = (Person) obj; 20 person.study(); 21 } 22 System.out.println(obj); 23 } 24 25 System.out.println("===增强for循环==="); 26 // 第二种方式:增强for循环 27 // 快捷键 Xx.for,其实质就是迭代器。 28 for (Object o : arrayList) { 29 System.out.println(o); 30 } 31 32 System.out.println("===增强for循环==="); 33 // 第三种方式:for循环 34 for (int i = 0; i < arrayList.size(); i++) { 35 System.out.println(arrayList.get(i)); 36 } 37 38 } 39 } 40 41 class Person { 42 private String name; 43 private int age; 44 45 public Person(String name, int age) { 46 this.name = name; 47 this.age = age; 48 } 49 50 public void study(){ 51 System.out.println(name + "要好好学习java"); 52 } 53 54 @Override 55 public String toString() { 56 return "Person{" + 57 "name='" + name + '\'' + 58 ", age=" + age + 59 '}'; 60 } 61 }
二. Vector类的遍历
1 public class ListBianLiTest { 2 public static void main(String[] args) { 3 Vector arrayList = new Vector(); 4 arrayList.add("hello"); 5 arrayList.add("world"); 6 arrayList.add("java"); 7 arrayList.add(true); 8 arrayList.add(new Person("大白",20)); 9 10 System.out.println("===迭代器循环==="); 11 // 第一种方式:生成迭代器 12 // 当需要迭代器再次遍历时,重置迭代器,iterator = arrayList.iterator(); 13 Iterator iterator = arrayList.iterator(); 14 // 快捷键:itit 15 while (iterator.hasNext()) { 16 // 遍历过程中如果想调用指定对象的特定方法,则需要向下转型。【多态】 17 Object obj = iterator.next(); 18 if(obj instanceof Person){ 19 Person person = (Person) obj; 20 person.study(); 21 } 22 System.out.println(obj); 23 } 24 25 System.out.println("===增强for循环==="); 26 // 第二种方式:增强for循环 27 // 快捷键 Xx.for,其实质就是迭代器。 28 for (Object o : arrayList) { 29 System.out.println(o); 30 } 31 32 System.out.println("===增强for循环==="); 33 // 第三种方式:for循环 34 for (int i = 0; i < arrayList.size(); i++) { 35 System.out.println(arrayList.get(i)); 36 } 37 38 } 39 } 40 41 class Person { 42 private String name; 43 private int age; 44 45 public Person(String name, int age) { 46 this.name = name; 47 this.age = age; 48 } 49 50 public void study(){ 51 System.out.println(name + "要好好学习java"); 52 } 53 54 @Override 55 public String toString() { 56 return "Person{" + 57 "name='" + name + '\'' + 58 ", age=" + age + 59 '}'; 60 } 61 }
三. LinkedList类的遍历
1 public class ListBianLiTest { 2 public static void main(String[] args) { 3 LinkedList linkedList = new LinkedList(); 4 linkedList.add("hello"); 5 linkedList.add("world"); 6 linkedList.add("java"); 7 linkedList.add(true); 8 linkedList.add(new Person("大白",20)); 9 10 System.out.println("===迭代器循环==="); 11 // 第一种方式:生成迭代器 12 // 当需要迭代器再次遍历时,重置迭代器,iterator = arrayList.iterator(); 13 Iterator iterator = linkedList.iterator(); 14 // 快捷键:itit 15 while (iterator.hasNext()) { 16 // 遍历过程中如果想调用指定对象的特定方法,则需要向下转型。【多态】 17 Object obj = iterator.next(); 18 if(obj instanceof Person){ 19 Person person = (Person) obj; 20 person.study(); 21 } 22 System.out.println(obj); 23 } 24 25 System.out.println("===增强for循环==="); 26 // 第二种方式:增强for循环 27 // 快捷键 Xx.for,其实质就是迭代器。 28 for (Object o : linkedList) { 29 System.out.println(o); 30 } 31 32 System.out.println("===增强for循环==="); 33 // 第三种方式:for循环 34 for (int i = 0; i < linkedList.size(); i++) { 35 System.out.println(linkedList.get(i)); 36 } 37 38 } 39 } 40 41 class Person { 42 private String name; 43 private int age; 44 45 public Person(String name, int age) { 46 this.name = name; 47 this.age = age; 48 } 49 50 public void study(){ 51 System.out.println(name + "要好好学习java"); 52 } 53 54 @Override 55 public String toString() { 56 return "Person{" + 57 "name='" + name + '\'' + 58 ", age=" + age + 59 '}'; 60 } 61 }
总结:三者遍历的方式基本相同。