java.util.List接口extends Collection接口
List接口特点:1、有序的集合,存储元素的顺序时一致的()存储的是123取出的是123
2、有索引,包含了一些带索引的方法
3、允许存储重复单元
List接口中带索引的特有方法:
public void add(int index, E element)
public E get (int index);返回集合中指定元素。
public E remove (int index):移除表格中元素,返回的是移除的元素
public E set (int index,E element);用指定元素替换集合中指定元素位置,返回值的更新前元素
注意:操作索引时一定要防止索引越界异常
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class demoList {
public static void main(String[] args) {
List<String> list=new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
System.out.println(list);//由于被重写toString,所以打印出来的不是地址而是字符串
list.add(2,"lizhao");
System.out.println(list);
String A=list.remove(1);//移除了列表中指定字符串,返回的是被移除元素
System.out.println("被移除元素"+A);
System.out.println(list);
//把最后一个d替换为a
String B=list .set(3,"A");
System.out.println("被替换的元素"+B);
System.out.println(list);
for(int i=0;i<list.size();i++){
String a=list.get(i);// public E get (int index);返回集合中指定元素。
System.out.println(a);
}
//使用迭代器来遍历
Iterator<String> it=list.iterator();//<String>必须填入String,否则String a=it.next()会报错
while (it.hasNext()){
String a=it.next();
System.out.println(a);
}
//含可以使用增强for循环
for(String s: list){
System.out.println(s);
}
}
}
LinkedList集合
java.util.LinkedList集合implements List接口
LinkedList集合特点:
1、底层是一个链表结构:查询慢,增删快
2、里边包含了大量操作首尾元素的方法
注意:使用LinkedList集合特有的方法,不能使用多态
public void addFirst(E e):将指定元素插入此列表开头。
public void addLast(E e);将指定元素添加到此列表的结尾
public void push(E e):将元素推入此列表所表示的堆栈。
public E getFirst()返回此列表的第一个元素
public E getLast();返回此列表的最后一个元素
public E removeFirst():移除并返回此列表的第一个元素。
public E removeLast():移除并返回此列表的最后一个元素
public E pop():从此列表所表示的堆栈出弹出一个元素
public boolean isEmpty():如果列表不含有元素,则返回true
import java.util.LinkedList;
public class demoLinkedList {
public static void main(String[] args) {
show();
/*public E getFirst()返回此列表的第一个元素
public E getLast();返回此列表的最后一个元素*/
}
public static void show(){
/*public void addFirst(E e):将指定元素插入此列表开头。
public void addLast(E e);将指定元素添加到此列表的结尾
public void push(E e):将元素推入此列表所表示的堆栈。*/
LinkedList <String> linked=new LinkedList<>();
linked.add("a");
linked.add("b");
linked.add("c");
System.out.println(linked);
linked.addFirst("wwww");
linked.addLast("mmmm");
linked.push("rrrr");
System.out.println(linked);
String a= linked.getFirst();
System.out.println(a);
String b= linked.getLast();
System.out.println(b);
LinkedList<String> linked2=new LinkedList<>();
linked2.add("a");
linked2.add("b");
linked2.add("c");
System.out.println(linked2);
String a=linked2.removeFirst();
String b=linked2.removeLast();
Systme.Out.println("移除弟弟一个元素是:"+a+"移除的最后一个元素是:"+b)
System.out.println(linked2);
}
}