1. 程式人生 > >List的三個子類比較與遍歷集合的方式

List的三個子類比較與遍歷集合的方式

 

ArrayList底層結構為陣列,查詢快,增刪慢,執行緒不安全,效率高。

Vector底層結構為陣列,查詢快,增刪慢,執行緒安全,效率低。

LinkedList的底層資料結構為連結串列,查詢慢,增刪快,執行緒不安全,效率高

遍歷:

首先,我們要先建一個類,

通過集合的方式對該類進行遍歷

public class Student {
    private String name;
    private int age;
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public Student() {
    }
    @Override
    public String toString() {
        return "Student{" +
                "name=" + name +
                ", age=" + age +
                '}'; }}

1.使用迭代器遍歷

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class StudentTest {
    public static void main(String[] args) {
        Student student2 = new Student("離", 21);
        Student student1 = new Student("大師", 31);
        ArrayList<Student> students = new ArrayList<>();
        students.add(student2);
        students.add(student1);
        Iterator<Student> iterator = students.iterator();
        while (iterator.hasNext()){
            Student s=iterator.next();
            System.out.println(s.getAge()+s.getName());
        }
    }
    }


2使用列表迭代器遍歷

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class StudentTest {
    public static void main(String[] args) {
        Student student2 = new Student("離", 21);
        Student student1 = new Student("大師", 31);
        ArrayList<Student> students = new ArrayList<>();
        students.add(student2);
        students.add(student1);
        ListIterator<Student> iterator = students.listIterator();
        while (iterator.hasNext()){
            Student s=iterator.next();
            System.out.println(s.getAge()+s.getName());
        }
    }
    }

 3使用size()和get()方法遍歷

 

public class StudentTest {
    public static void main(String[] args) {
        Student student2 = new Student("離", 21);
        Student student1 = new Student("大師", 31);
        ArrayList<Student> students = new ArrayList<>();
        students.add(student2);
        students.add(student1);
        for(int i=0;i<students.size();i++){
            Student s=students.get(i);
            System.out.println(s);
        }
    }
    }

 4使用增強for遍歷

public class StudentTest {
    public static void main(String[] args) {
        Student student2 = new Student("離", 21);
        Student student1 = new Student("大師", 31);
        ArrayList<Student> students = new ArrayList<>();
        students.add(student2);
        students.add(student1);
        for(Student s:students){
            System.out.println(s.getAge()+s.getName());
        }
    }
    }