点击查看:java集合(List、Set、Map)博客目录
第六节 : List集合
6.1 、 List集合 介绍及常用方法
特点:
- 有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。
- 与 set 不同,列表通常允许重复的元素。更确切地讲,列表通常允许满足 e1.equals(e2) 的元素对 e1 和
e2,并且如果列表本身允许 null 元素的话,通常它们允许多个 null 元素。
List的方法:
import java.util.*;
public class DemoList{
public static void main(String args[]){
// 创建一个List集合对象,多态
List<String> list = new ArrayList<>();
// 使用add方法在集合中添加元素
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("a");
// 打印集合
System.out.println(list); // 输出: [a,b,c,d,a]
// 指定索引添加元素
list.add(3,"tt");
System.out.println(list); // 输出: [a,b,c,tt,d,a]
// 删除元素
String r = list.remove(2);
System.out.println("被移除的元素: "+r);
System.out.println(list);// 输出: [a,b,tt,d,a]
// 替换元素
list.set(4,"A");
System.out.println(list);// 输出: [a,b,tt,d,A]
// get方法获取元素,遍历集合
String s = list.get(2);
System.out.println(s); // 输出: tt
// 见 下一段代码
}
}
//List集合的三种遍历方式:
// 方法(1)
for(int i=0;i<list.size();i++){
String s = list.get(i);
System.out.println(s);
}
//方法(2)
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)
}
6.2 、ArrayList集合
特点:
- List 接口的大小可变数组的实现
- 此类是不同步的,即:多线程,效率高 速度快
6.2 、LinkedList集合
特点:
- List 接口的链接列表实现。
- 除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾
get、remove 和 insert 元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈、队列或双端队列。- 此实现不是同步的,即:多线程。
LinkedList特有的方法:
- void addFirst(E e) 将指定元素插入此列表的开头。
- void addLast(E e) 将指定元素添加到此列表的结尾。
- E getFirst() 返回此列表的第一个元素。
- E getLast() 返回此列表的最后一个元素。
- removeFirst()
- removeLast()
- E pop() 从此列表所表示的堆栈处弹出一个元素。
- void push(E e) 将元素推入此列表所表示的堆栈。
- E pollFirst() 获取并移除此列表的第一个元素;如果此列表为空,则返回 null。
- E pollLast() 获取并移除此列表的最后一个元素;如果此列表为空,则返回 null。
- E peek() 获取但不移除此列表的头(第一个元素)。
- E peekFirst() 获取但不移除此列表的第一个元素;如果此列表为空,则返回 null。
- E peekLast() 获取但不移除此列表的最后一个元素;如果此列表为空,则返回 null。
6.2 、Vector集合
特点:
- 同步的,单线程。