java.util.List:接口。
1、特点
- 元素存取有序;
- 元素带索引,通过索引就可以精确的操作集合中的元素(与数组的索引是一个道理)。
- . 集合中可以有重复的元素,通过元素的equals方法,来比较是否为重复的元素。
2、常用方法
根据元素索引来操 作集合的特有方法:
public void add(int index, E element)
:将指定的元素,添加到该集合中的指定位置上。
public E get(int index)
:返回集合中指定位置的元素。
public E remove(int index)
:移除列表中指定位置的元素, 返回的是被移除的元素。
public E set(int index, E element)
:用指定元素替换集合中指定位置的元素,返回值的更新前的元素。
public static void main(String[] args) {
// 创建List集合对象
List<String> list = new ArrayList<>();
// 集合尾部添加元素
list.add("张三");
list.add("李四");
list.add("王五");
System.out.println(list);
// 指定位置添加元素
list.add(1, "小学妹");
System.out.println(list);
// 删除指定位置的元素,返回被删除的元素
System.out.println(list.remove(2));
System.out.println(list);
// 更新指定位置的元素,返回更新前的值
System.out.println(list.set(0, "大师姐"));;
System.out.println(list);
// 遍历,获取元素
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
// 增强for遍历
for (String s : list) {
System.out.println(s);
}
}
3、子类
3.1、ArrayList
java.util.ArrayList:底层是长度可变的数组结构,查询快,增删慢。不是同步的(多线程,线程不安全)。
由于日常开发中使用最多的功能为 查询数据、遍历数据,所以 ArrayList 是最常用的集合。
ArrayList
3.2、LinkedList
java.util.LinkedList:底层是双向链表结构,查询慢,增删快。是一个方便元素添加、删除的集合。不是同步的(多线程,线程不安全)。在开发时,LinkedList集合也可以作为堆栈,队列的结构使用。
LinkedList提供了一些操作首尾元素的方法:
public void addFirst(E e)
:将指定元素插入此列表的开头。
public void addLast(E e)
:将指定元素添加到此列表的结尾。
public E getFirst()
:返回此列表的第一个元素。
public E getLast()
:返回此列表的最后一个元素。
public E removeFirst()
:移除并返回此列表的第一个元素。
public E removeLast()
:移除并返回此列表的最后一个元素。
public E pop()
:从此列表所表示的堆栈处弹出一个元素。
public void push(E e)
:将元素推入此列表所表示的堆栈。
public boolean isEmpty()
:如果列表不包含元素,则返回true。
public static void main(String[] args) {
LinkedList<String> link = new LinkedList<>();
// 添加元素
link.addFirst("张三");
link.addFirst("李四");
link.addFirst("王五");
link.addLast("小师妹");
System.out.println(link);
// 获取元素
System.out.println(link.getFirst());
System.out.println(link.getLast());
// 删除元素
System.out.println(link.removeFirst());
System.out.println(link.removeLast());
System.out.println(link);
// 向集合中推入数据(类似于堆栈、队列操作)
link.push("大师姐");
System.out.println(link);
while (!link.isEmpty()) { // 判断集合不为空
System.out.println(link.pop()); // 弹出集合中的栈顶元素(类似于堆栈操作)
}
System.out.println(link);
}
3.3、Vector
java.util.Vector:底层是可增长的对象数组,是线程同步的(单线程,线程安全)。
感谢小伙伴们的关注!
你的点赞、评论、关注、收藏是对博主的最大鼓励!
持续更新JavaSE学习笔记!欢迎订阅专栏!