List
List类集合接口的特点:
1、有序的集合,存储元素和取出元素的顺序是一致的
2、有索引,可以根据索引对元素进行操作
3、允许存储重复的元素
一、List集合中常用带索引的方法
1、public void add(int index, E e) 向集合中指定索引位置添加指定元素
public static void main(String[] args) {
//创建一个List集合 使用多态的写法
List<String> list = new ArrayList<>();
//向集合中添加元素
list.add("1");
list.add("2");
list.add("3");
System.out.println(list); //[1, 2, 3]
list.add(2, "0");
//在2号索引位置插入0
System.out.println(list); //[1, 2, 0, 3]
}
2、public E set(int index, E e) 设置集合中指定索引位置元素为e,具有返回值,返回值为没设置前原来集合对应索引位置的元素。
public static void main(String[] args) {
//创建一个List集合 使用多态的写法
List<String> list = new ArrayList<>();
//向集合中添加元素
list.add("1");
list.add("2");
list.add("3");
System.out.println(list); //[1, 2, 3]
//将0号索引位置的元素设置为0
String before = list.set(0,"0");
System.out.println(before); // 1
System.out.println(list); //[0, 2, 3]
}
3、public E get(int index) 获取集合中对于索引位置的元素,返回值为对于索引位置的元素。
public static void main(String[] args) {
//创建一个List集合 使用多态的写法
List<String> list = new ArrayList<>();
//向集合中添加元素
list.add("1");
list.add("2");
list.add("3");
System.out.println(list); //[1, 2, 3]
//获取索引为2的元素
String s = list.get(2);
System.out.println(s); // 3
}
4、public E remove(int index) 移除对应索引位置的元素,返回值为被移除的元素
public static void main(String[] args) {
//创建一个List集合 使用多态的写法
List<String> list = new ArrayList<>();
//向集合中添加元素
list.add("1");
list.add("2");
list.add("3");
System.out.println(list); //[1, 2, 3]
//移除索引为2的元素
String remove = list.remove(2);
System.out.println("被移除的元素:" + remove); // 3
System.out.println(list); [1, 2]
}
二、ArrayList集合
java.util.ArrayList集合数据存储的结构是数组结构。元素【增删慢,查找快】,常用于【查询数据】,【遍历数据】。 是同步的多线程的
三、LinkedList集合
java.util.LinkedList集合数据存储结构是链表结构。方便元素**【添加】、【删除】,但是【遍历】和【查询】慢**
LinkedList是一个双向链表
LinkedList集合特有操作头部和尾部方法
1、public void addFirst(E e) 在集合的开头插入一个元素。
public static void main(String[] args) {
//创建一个LinledList集合
LinkedList<String> linked = new LinkedList<>();
//向集合中添加元素
linked.add("1");
linked.add("2");
linked.add("3");
//打印未进行操作的集合
System.out.println(linked); //[1, 2, 3]
//在集合的开头添加元素0
linked.addFirst("0");
//打印添加后的集合
System.out.println(linked); //[0, 1, 2, 3]
}
2、public void push(E e) 将元素添加到此列表所表示的堆栈。等效于addFirst(E e)。
public static void main(String[] args) {
//创建一个LinledList集合
LinkedList<String> linked = new LinkedList<>();
//向集合中添加元素
linked.add("1");
linked.add("2");
linked.add("3");
//打印未进行操作的集合
System.out.println(linked); //[1, 2, 3]
//在集合列表的堆栈添加一个元素0
linked.push("0");
//打印添加后的集合
System.out.println(linked); //[0, 1, 2, 3]
}
3、public void addLast(E e) 在集合的尾部插入一个元素。等效于add(E e)。
public static void main(String[] args) {
//创建一个LinledList集合
LinkedList<String> linked = new LinkedList<>();
//向集合中添加元素
linked.add("1");
linked.add("2");
linked.add("3");
//打印未进行操作的集合
System.out.println(linked); [1, 2, 3]
//在集合的尾部添加一个元素,相当于add()方法,add()方法也是在集合的末尾添加一个元素
linked.addLast("0");
//打印添加后的集合
System.out.println(linked); //[1, 2, 3, 0]
}
4、public E getFirst() 获取集合的第一个元素,并返回所获取的元素
public static void main(String[] args) {
//创建一个LinledList集合
LinkedList<String> linked = new LinkedList<>();
//向集合中添加元素
linked.add("1");
linked.add("2");
linked.add("3");
//打印未进行操作的集合
System.out.println(linked); //[1, 2, 3]
//获取集合的第一个元素,并返回该元素,集合前后不发生改变
String first = linked.getFirst();
//打印获取的元素
System.out.println(first); // 1
//打印添加后的集合
System.out.println(linked); //[1, 2, 3]
}
5、public E getLast() 获取集合的最后一个元素,并返回所获取的元素
public static void main(String[] args) {
//创建一个LinledList集合
LinkedList<String> linked = new LinkedList<>();
//向集合中添加元素
linked.add("1");
linked.add("2");
linked.add("3");
//打印未进行操作的集合
System.out.println(linked); //[1, 2, 3]
//获取集合的最后一个元素,并返回该元素,集合前后不发生改变
String last = linked.getLast();
//打印获取的元素
System.out.println(last); // 3
//打印获取后的集合
System.out.println(linked); //[1, 2, 3]
}
6、public E removeFirst() 移除集合中的第一个元素,并返回所移除的元素
public static void main(String[] args) {
//创建一个LinledList集合
LinkedList<String> linked = new LinkedList<>();
//向集合中添加元素
linked.add("1");
linked.add("2");
linked.add("3");
//打印未进行操作的集合
System.out.println(linked); //[1, 2, 3]
//移除集合的第一个元素,并返回移除的元素
String first = linked.removeFirst();
System.out.println(first); // 1
//打印移除后的集合
System.out.println(linked); //[2, 3]
}
7、public E pop() 从此列表所示的堆栈中弹出一个元素,等效于removeFirst()
public static void main(String[] args) {
//创建一个LinledList集合
LinkedList<String> linked = new LinkedList<>();
//向集合中添加元素
linked.add("1");
linked.add("2");
linked.add("3");
//打印未进行操作的集合
System.out.println(linked); //[1, 2, 3]
//从此集合表示的堆栈中弹出一个元素,等效于removeFirst()
String pop = linked.pop();
System.out.println(pop); // 1
//打印操作后的集合
System.out.println(linked); //[2, 3]
}
8、public E removeLast() 移除集合中的最后一个元素,并返回所移除的元素
public static void main(String[] args) {
//创建一个LinledList集合
LinkedList<String> linked = new LinkedList<>();
//向集合中添加元素
linked.add("1");
linked.add("2");
linked.add("3");
//打印未进行操作的集合
System.out.println(linked); //[1, 2, 3]
//移除集合中的最后一个元素,并返回所移除的元素
String last = linked.removeLast();
//打印移除的元素
System.out.println(last); // 3
//打印操作后的集合
System.out.println(linked); //[1, 2]
}