首页 > 其他分享 >List接口实现类的遍历方式

List接口实现类的遍历方式

时间:2023-01-01 20:56:10浏览次数:42  
标签:遍历 name arrayList List System 接口 Person println out

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 }

总结:三者遍历的方式基本相同。

 

标签:遍历,name,arrayList,List,System,接口,Person,println,out
From: https://www.cnblogs.com/zwgitOne123/p/17018564.html

相关文章

  • JMS与Spring之二(用message listener container异步收发消息)
    本文主要参考JavaMessageService(2nd)byMarcRicbard。在Spring框架中使用JMS传递消息有两种方式:JMStemplate和messagelistenercontainer,前者用于同步收发消息,后者用于......
  • 接口
    接口普通类:只有具体的实现抽象类:具体实现和规范(抽象方法)都有接口:只有规范,没有方法---约束与实现分离---面向接口编程接口的本质是最高规范、最大公约数接口作......
  • 接口测试
    1:接口测试的定义?目前,软件接口中基HTTP(RESTfull架构)的接口 是软件测试领域最常见的接口。基于我们主要针对的接口类型,定义为:根据前后两端通信的协议规则,组装一个请求数......
  • P3916 图的遍历
    题目描述给出 NN 个点,MM 条边的有向图,对于每个点 vv,求 A(v)A(v) 表示从点 vv 出发,能到达的编号最大的点。输入格式第 11 行 22 个整数 N,MN,M,表示点数......
  • 接口2.0
    jdk8以后,允许在接口中定义默认的方法,但是必须用关键字default修饰,作用是解决接口升级的问题,防止出现接口改变,实现类必须重写方法的现象接口中默认方法的定义格式:publicd......
  • leetcode-590. N 叉树的后序遍历
    590.N叉树的后序遍历-力扣(Leetcode)可以参考[[leetcode-589.N叉树的前序遍历]],代码差不多/***DefinitionforaNode.*typeNodestruct{*Valint......
  • leetcode-589. N 叉树的前序遍历
    589.N叉树的前序遍历-力扣(Leetcode)Go语言的切片操作方便性还不错/***DefinitionforaNode.*typeNodestruct{*Valint*Children[]*Node*......
  • java中的LinkedList的add()源码解析
    一.介绍LinkedList类阐明LinkedList类的成员:其本质是双向链表,first指向链表的头部,last指向链表的尾部。二.介绍LinkedList静态内部类Node类阐明Nod......
  • java中的ArrayList的add()源码解析
    使用无参构造器创建的ArrayList对象,示例代码如下:publicclassArrayListTest{publicstaticvoidmain(String[]args){Listlist=newArrayList();......
  • 掌握二叉搜索树的双指针 + 公共祖先加深对后序遍历和递归的理解
    530.二叉搜索树的最小绝对差intmin=Integer.MAX_VALUE;TreeNodepre;/***<Ahref="https://leetcode.cn/problems/minimum-absolute-difference-in-......