特点,注意,带索引的方法
特点:
1·有序的集合,存储元素和取出元素的顺序是一致的(存储123,取出123)
2·有索引,包含了一些带索引的方法
3·允许存储重复的方法
带索引的方法(特有):
-
public void add(int index, E element) :将指定的元素,添加到该集合中的指定位置上 -
public E get(int index) :返回集合中指定位置的元素 -
public E remove(int index):移除列表中指定位置的元素,返回的是被移除的元素 -
public E set(int index,E element):用指定元素替换集合中指定位置的元素,返回值的更新前的元素
注意
操作索引的时候,一定要防止索引越界异常
IndexOutOfBoundsException 索引越界异常,集合汇报
ArrayIndexOutOfBoundsException 数组索引越界异常
StirngIndexOutOfBoundsException 字符串索引越界异常
ArraryList,LinkedList,Vector的区别
- 默认容量:ArrayList默认为10,Vector可以视作老版的ArrayList,默认容量也是10,linkedList没有默认容量
- 特点:ArrayList查询快,增删慢,Vector查询快,增删慢,LinkedList查询慢,增删快
- 底层:ArrayList和Vector的底层都是数组,linkedlist底层是双向链表
- 扩容机制上:ArrayList是呈现1.5倍增长,Vector呈现2倍增长
LinkedList集合
java.util.LinkedList集合 implements List接口
LinkedList集合的特点:
1·底层是一个链表结构:查询慢,增删快
2·里面包含了大量操作首尾元素的方法
注意:使用LinkedList集合特有的方法,不能使用多态
-public void addFirst(E e):将指定元素插入此列表的开头
-public void addLast(E e):将指定元素添加到此列表的结尾,此方法等效于add()
-public void push(E e):将元素推入次俩表所表示的堆栈,此方法等效于 addFirst(E);
-public E getFirst():返回此列表的第一个元素
-public E getLast():返回此列表的最后一个元素
-public E removeFirst():移除并返回此列表的第一个元素
-public E removeLast():移除并返回此列表的最后一个元素
-public E pop():从此列表所表示的堆栈处弹出一个元素,此方法相当于 removeFirst
-public boolean isEmpty():如果列表不包含元素,则返回true
public static void main(String[] args) {
System.out.println("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-");
show01();
System.out.println("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-");
show02();
System.out.println("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-");
show03();
System.out.println("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-");
}
/*
-public void addFirst(E e):将指定元素插入此列表的开头
-public void addLast(E e):将指定元素添加到此列表的结尾,此方法等效于add()
-public void push(E e):将元素推入次俩表所表示的堆栈,此方法等效于 addFirst(E);
*/
private static void show01() {
//创建LinkedList集合对象
LinkedList<String> linked = new LinkedList<>();
//使用add方法往集合中添加元素
linked.add("a");
linked.add("b");
linked.add("c");
System.out.println(linked);
// -public void addFirst(E e):将指定元素插入此列表的开头
linked.addFirst("First");
linked.push("first");//[First, a, b, c]
System.out.println(linked);//[first, First, a, b, c]
// -public void addLast(E e):将指定元素添加到此列表的结尾
linked.addLast("list");
System.out.println(linked);//[first, First, a, b, c, list]
linked.add("Last");
System.out.println(linked);//[first, First, a, b, c, list, Last]
}
/*
-public E getFirst():返回此列表的第一个元素
-public E getLast():返回此列表的最后一个元素
*/
private static void show02() {
//创建LinkedList集合对象
LinkedList<String> linked = new LinkedList<>();
//使用add方法往集合中添加元素
linked.add("a");
linked.add("b");
linked.add("c");
// linked.clear();//清空集合中的元素 在获取集合中的元素会抛出NoSuchElementException
if (!linked.isEmpty()) {
String first = linked.getFirst();
System.out.println(first);//a
String last = linked.getLast();
System.out.println(last);//c
}
}
/*
-public E removeFirst():移除并返回此列表的第一个元素
-public E removeLast():移除并返回此列表的最后一个元素
-public E pop():从此列表所表示的堆栈处弹出一个元素,此方法相当于 removeFirst
*/
private static void show03() {
//创建LinkedList集合对象
LinkedList<String> linked = new LinkedList<>();
//使用add方法往集合中添加元素
linked.add("a");
linked.add("b");
linked.add("c");
System.out.println(linked.removeFirst());
System.out.println(linked.pollFirst());
System.out.println(linked.removeLast());
if (linked.isEmpty()) {
System.out.println("集合已经清空");
} else {
System.out.println("集合中还存在元素");
}
}