《贰》算法竞赛常用的JAVA API--3JAVA API :ArrayList(Vector) 和 LinkedList

152 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

3、JAVA API :ArrayList(Vector) 和 LinkedList

本文主要介绍ArrayList和LinkedList的常用方法, 也就是动态数组(C++中的vector)和链表,其中LinkedList可以用来实现队列和栈(C++中的queue和stack)。

ArrayList(线性表(数组))

ArrayList 类可以实现可增长的对象数组。

(1)构造方法

ArrayList()构造一个空向量,使其内部数据数组大小为10,其标准容量增量为0

ArrayList(int initialCapacity)使用指定的初始容量和容量增量构造一个空的向量

(2)增加元素

add(E e)将指定的元素添加到末尾 O(1)

add(int index, E element) 在此向量的指定位置插入指定的元素 O(n)

(3)删除元素

remove (int index)移除此向量中指定位置的元素 O(n)

remove (Object o) 移除此向量中指定元素 O(n)

clear()从此向量中移除所有元素

(4)查找元素

get(int index) 返回向量中指定位置的元素 O(1)

indexOf(Object o)返回此向量中第一次出现的指定元素的索引,如果此向量不包含该元素,则返回-1

lastIndexOf(Object o)返回此向量中最后一次出现的指定元素的索引;如果此向量不包含该元素,则返回-1

(5)容量大小

size()返回此向量中的组件数

(6)判空

isEmpty()测试此向量是否不包含组件

(7)转化为数组

toArray()返回一个数组,包含此向量中恰当位置顺序存放的所有元素

(8)转化为字符串

toString()返回此向量的字符串表示形式,其中包含每个元素的String表示形式

(9)拷贝

 1.使用等号拷贝
     ArrayList<Integer> Arr1 = new ArrayList<>();
     ArrayList<Integer> Arr2 = new ArrayList<>();
     // 将Arr2的值拷贝给Arr1
     Arr1 = Arr2; // Arr1之前的值会自动被垃圾回收
 ​
     以下两种方式也适用于其他集合的拷贝
 2.使用构造函数拷贝
     只要该集合的构造函数支持参数为集合就可
     以使用此方法拷贝ArrayList<Integer> Arr2 = new ArrayList<>();
     // 将Arr2的值拷贝给Arr1
     ArrayList<Integer> Arr1 = new ArrayList<>(Arr2);
 3.clone()
     只要该集合支持clone,就可以使用此方法拷贝ArrayList<Integer> Arr1 = new ArrayList<>();
     ArrayList<Integer> Arr2 = new ArrayList<>();
     // 将Arr2的值拷贝给Arr1
     Arr1 = (ArrayList<Integer>) Arr2.clone();

LinkedList(链表)

LinkedList是List接口的链接列表实现。实现所有可选的列表操作,并且允许所有元素(包括null)。除了实现List接口外,LinkedList类还在为列表的开头及结尾get、remove、insert提供了统一的命名方法。这些操作允许将链接列表用作堆栈。队列或双端队列。

增加: add(E e):在链表后添加一个元素; 通用方法 addFirst(E e):在链表头部插入一个元素; 特有方法 addLast(E e):在链表尾部添加一个元素; 特有方法 push(E e):与addFirst方法一致 offer(E e):在链表尾部插入一个元素 add(int index, E element):在指定位置插入一个元素。 offerFirst(E e):JDK1.6版本之后,在头部添加; 特有方法 offerLast(E e):JDK1.6版本之后,在尾部添加; 特有方法

删除: remove() :移除链表中第一个元素; 通用方法 remove(E e):移除指定元素; 通用方法 removeFirst(E e):删除头,获取元素并删除; 特有方法 removeLast(E e):删除尾; 特有方法 pollFirst():删除头; 特有方法 pollLast():删除尾; 特有方法 pop():和removeFirst方法一致,删除头。 poll():查询并移除第一个元素 特有方法

查: get(int index):按照下标获取元素; 通用方法 getFirst():获取第一个元素; 特有方法 getLast():获取最后一个元素; 特有方法 peek():获取第一个元素,但是不移除; 特有方法 peekFirst():获取第一个元素,但是不移除; peekLast():获取最后一个元素,但是不移除; pollFirst():查询并删除头; 特有方法 pollLast():删除尾; 特有方法 poll():查询并移除第一个元素 特有方法

通过迭代器遍历容器类

 Iterator iterator = student.iterator();
     while(iterator.hasNext()){
         System.out.println(iterator.next);
     }

\