List集合常用集合子类:
ArrayList :底层数据结构是数组,查询快,增删慢;
LinkedList:底层数据结构是链表,查询慢,增删慢。
ArrayList是List的子类,List与前面ArrayList章节大同小异,
ListIterator练习
package _4;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class _230 {
public static void main(String[] args) {
List<String> l=new ArrayList<>();
l.add("Hello");
l.add("World");
l.add("Java");
ListIterator<String> lt=l.listIterator();
//正序遍历
while (lt.hasNext()){
String s=lt.next();
System.out.println(s);
}
//逆序遍历
while (lt.hasPrevious()){
String s1=lt.previous();
System.out.println(s1);
}
//列表迭代器不会触发并发修改异常
while (lt.hasNext()){
String s3=lt.next();
if(s3.equals("World")){
lt.add("qwe");
}
}
System.out.println(l);
}
}
增强for练习
package _4;
//增强for练习
import java.util.ArrayList;
import java.util.List;
public class _231 {
public static void main(String[] args) {
//数组
int[] arr = {1, 2, 3, 4, 5};
for (int i : arr) {
System.out.println(i);
}
System.out.println("--------");
//字符串数组
String[] strArray = {"Hellio", "World", "Java"};
for (String s : strArray) {
System.out.println(s);
}
System.out.println("________");
//字符串集合
List<String> l = new ArrayList<String>();
l.add("Hello");
l.add("World");
l.add("Java");
for (String s : l) {
System.out.println(s);
}
}
}
练习程序:定义学生类,利用三种方法遍历
Student
package _4._232;
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;
}
}
Demo
package _4._232;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Demo {
public static void main(String[] args) {
List<Student> l = new ArrayList<Student>();
Student s1 = new Student("马瑞麟", 22);
Student s2 = new Student("李秀锋", 21);
Student s3 = new Student("昝博文", 22);
l.add(s1);
l.add(s2);
l.add(s3);
//迭代器遍历
Iterator<Student> it = l.iterator();
while (it.hasNext()){
Student s=it.next();
System.out.println("姓名:"+s.getName()+" "+"年龄:"+s.getAge());
}
System.out.println("----------");
//普通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 (Student s:l){
System.out.println("姓名:"+s.getName()+" "+"年龄:"+s.getAge());
}
}
}
LinkedList特有方法练习
package _4;
import java.util.LinkedList;
public class _237 {
public static void main(String[] args) {
LinkedList<String> ll=new LinkedList<String>();
ll.add("Hello");
ll.add("World");
ll.add("Java");
System.out.println(ll);
System.out.println("--------");
//从 开头/结尾 插入元素
ll.addFirst("mrl");
ll.addLast("qwe");
System.out.println(ll);
System.out.println("--------");
//返回 开头/结尾 元素
System.out.println(ll.getFirst());
System.out.println(ll.getLast());
System.out.println("--------");
//删除并返回 开头/结尾 元素
System.out.println(ll.removeFirst());
System.out.println(ll.removeLast());
System.out.println(ll);
}
}