_List集合存储学生对象的3种遍历方法
-
package demo20; import java.util.ArrayList; import java.util.List; import java.util.ListIterator; /* 需求: 用3种方法遍历Student集合 */ public class Application { public static void main(String[] args) { List<Student> l = new ArrayList<>(); // 添加学生对象 Student s1 = new Student("小明", 9); Student s2 = new Student("小红", 10); Student s3 = new Student("小君", 7); // 将学生对象添加到集合中 l.add(s1); l.add(s2); l.add(s3); System.out.println("--------迭代器遍历--------"); // 迭代器遍历集合 ListIterator<Student> lit = l.listIterator(); while (lit.hasNext()) { Student s = lit.next(); System.out.println("姓名:"+s.getName()+" 年龄:"+s.getAge()); } System.out.println("-------for循环遍历-------"); // 采用for循环遍历 for (int i = 0; i < l.size(); i++) { Student s = l.get(i); System.out.println("姓名:"+s.getName()+" 年龄:"+s.getAge()); } System.out.println("-------增强for循环遍历------"); // 采用增强for循环遍历 for ( Student i : l){ System.out.println("姓名:"+i.getName()+" 年龄:"+i.getAge()); } } } ------------------------------ package demo20; public class Student { private String name; private int age; public Student() { } 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; } } =================================== --------迭代器遍历-------- 姓名:小明 年龄:9 姓名:小红 年龄:10 姓名:小君 年龄:7 -------for循环遍历------- 姓名:小明 年龄:9 姓名:小红 年龄:10 姓名:小君 年龄:7 -------增强for循环遍历------ 姓名:小明 年龄:9 姓名:小红 年龄:10 姓名:小君 年龄:7 Process finished with exit code 0
_数据结构之栈和队列
-
常见数据结构之栈
- 数据进入栈模型的过程称为:压/进栈
- 数据离开栈模型的过程称为:弹/出栈
- 栈是一种数据先进后出的模型
-
常见数据机构值队列
- 数据从后端进入队列模型的过程称为:入队列
- 数据从前端离开队列模型的过程称为:出队列
- 队列是一种先进先出的模型
_数据结构之数组和链表
-
常见数据结构之数组:
- 查询数据通过索引定位,查询任意数据耗时相同,查询效率高
- 删除数据时,要将原始珊数据删除,痛死后面的每个数据前移,删除效率低
- 添加数据时,添加位置后的每一个数据后移,再添加元素,添加效率极低
-
常见数据结构之链表
- 链表是一种增删快的模型(对比数组)
- 链表是一种查询慢的模型(对比数组)
List 集合子类的特点
-
List子类的特点:
List集合的常用子类:ArrayList , LinkdeList
- ArrayList : 底层数据结构是数组,查询快,增删慢;
- LinkedList: 底层数据结构是链表,查询慢,增删快;
-
package demo21; /* 需求: 分别使用ArrayList和LinkedList存储遍历数组 */ import java.util.ArrayList; import java.util.LinkedList; public class ListDemo_01 { public static void main(String[] args) { /* - ArrayList : 底层数据结构是数组,查询快,增删慢; - LinkedList: 底层数据结构是链表,查询慢,增删快; */ // ArrayList ArrayList<String> al = new ArrayList<>(); al.add("hello "); al.add("world "); al.add("java"); // 增强for遍历集合 for (String s : al) { System.out.print(s); if (s.equals("java")) { System.out.println(); } } System.out.println("---------------"); // LinkedList LinkedList<String> ll = new LinkedList<>(); ll.add("hello "); ll.add("world "); ll.add("2022"); // 增强for遍历 for (String s : ll) { System.out.print(s); if (s.equals("2022")) { System.out.println(); } } System.out.println("----------------"); } } =============================== hello world java --------------- hello world 2022 ---------------- Process finished with exit code 0
_LinkedList 集合的特有功能
-
方法名 说明 public void addFirst(E e) 在该列表开头插入指定的元素 public void addLast(E e) 将指定的元素追加到此类表的末尾 public E getFirst() 返回此列表中的第一个元素 public E getLast() 返回此列表中的最后一个元素 public E removeFirst() 从此列表中删除并返回第一个元素 public E removeLast 从此列表中删除并返回最后一个元素 -
package demo21; import java.util.LinkedList; public class LinkedListDemo_02 { public static void main(String[] args) { /* public void addFirst(E e) 在该列表开头插入指定的元素 public void addLast(E e) 将指定的元素追加到此类表的末尾 public E getFirst() 返回此列表中的第一个元素 public E getLast() 返回此列表中的最后一个元素 public E removeFirst() 从此列表中删除并返回一个元素 public E removeLast 从此列表中删除并返回最后一个元素 */ LinkedList<String> l = new LinkedList<>(); l.add("hello "); l.add("world "); l.add("java "); // 遍历集合 for (String s : l) { System.out.print(s); // hello world java if (s.equals("java ")) { System.out.println(); } } System.out.println("-------------------"); // public void addFirst(E e) 在该列表开头插入指定的元素 l.addFirst("hello "); for (String s : l) { System.out.print(s); // hello hello world java if (s.equals("java ")) { System.out.println(); } } System.out.println("------------------"); // public void addLast(E e) 将指定的元素追加到此类表的末尾 l.addLast("2022"); for (String s : l) { System.out.print(s); // hello hello world java 2022 if (s.equals("2022")) { System.out.println(); } } System.out.println("---------------"); // public E getFirst() 返回此列表中的第一个元素 System.out.println(l.getFirst()); // hello System.out.println("----------------"); // public E getLast() 返回此列表中的最后一个元素 System.out.println(l.getLast()); // 2022 System.out.println("----------------"); // public E removeFirst() 从此列表中删除并返回第一个元素 System.out.println(l.removeFirst()); // hello for (String s : l) { System.out.print(s); // hello world java 2022 if (s.equals("2022")) { System.out.println(); } } System.out.println("----------------"); // public E removeLast 从此列表中删除并返回最后一个元素 System.out.println(l.removeLast()); // 2022 for (String s : l) { System.out.print(s); // hello world java if (s.equals("java ")) { System.out.println(); } } } } ============================ hello world java ------------------- hello hello world java ------------------ hello hello world java 2022 --------------- hello ---------------- 2022 ---------------- hello hello world java 2022 ---------------- 2022 hello world java Process finished with exit code 0