List的三個子類比較與遍歷集合的方式
阿新 • • 發佈:2018-11-03
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());
}
}
}