0x00 List集合
java.util.List接口 extends Collection接口
list接口的特点:
- 有序的集合
- 允许存储重复的元素
- 有索引,包含了一些带索引的方法
1.list接口中带索引的方法(特有)
- public void add(int index,E elment):将指定的元素,添加到该集合中的指定位置上。
- public E get(int index):返回集合中指定位置的元素。
- public E remove(int index):移除列表中指定位置的元素,返回的是被移除的元素。
- public E set(int index,E element):用指定元素替换集合中指定位置的元素,返回值的更新前的元素。
注意:操作索引的时候,一定要防止索引越界异常
代码演示:
package day24;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class ListDemo01 {
public static void main(String[] args) {
// 创建一个list集合对象,多态
List<String> list = new ArrayList<>();
//使用add方法往集合中添加元素
list.add("e");
list.add("r");
list.add("r");
list.add("o");
list.add("r");
//打印集合
System.out.println(list);
//在r和o之间添加一个元素
list.add(3,"b");
System.out.println(list);
//把刚添加的b删除
String removeB = list.remove(3);
System.out.println(removeB);
System.out.println(list);
//用指定元素替换集合中指定位置的元素
String setR = list.set(4,"R");
System.out.println(setR);
System.out.println(list);
//list集合遍历有三种方式
//使用普通的for循环
for (int i = 0; i < list.size(); i++) {
String s = list.get(i);
System.out.print(s);
}
//使用迭代器
Iterator<String> it = list.iterator();
while (it.hasNext()){
String s = it.next();
System.out.println(s);
}
//增强for循环
for (String s:list) {
System.out.println(s);
}
}
}
2.list集合的实现类
1. ArrayList集合数据存储的结构是数组结构,元素增删慢,查找快,犹豫日常开发中使用最多的功能为查询数据、遍历数据,所以ArrayList是最常用的集合。
2. LinkdeList集合 implements List接口特点: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。
如果集合中的元素为空,在获取集合中的元素会抛出异常。
代码演示:
package day24;
import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
import java.util.LinkedList;
public class LinkedListDemo02 {
public static void main(String[] args) {
show01();
show02();
show03();
}
private static void show01(){
//创建linkedlist集合对象
LinkedList<String> linked = new LinkedList<>();
//使用add方法往集合中添加元素
linked.add("a");
linked.add("b");
linked.add("c");
linked.add("d");
System.out.println(linked);
//将指定元素插入此列表的开头。
linked.push("www");
// linked.addFirst("www");
System.out.println(linked);
//将指定元素添加到此列表的结尾
linked.addLast("com");
System.out.println(linked);
}
private static void show02(){
LinkedList<String> linked = new LinkedList<>();
linked.add("a");
linked.add("b");
linked.add("c");
//获取第一个元素
String first = linked.getFirst();
System.out.println(first);
//获取最后一个元素
String last = linked.getLast();
System.out.println(last);
}
private static void show03(){
LinkedList<String> linked = new LinkedList<>();
linked.add("a");
linked.add("b");
linked.add("c");
//删除第一个元素
String first = linked.removeFirst();
System.out.println(first);
System.out.println(linked);
//删除最后一个元素
String last = linked.removeLast();
System.out.println(last);
System.out.println(linked);
}
}