方法:
void addFirst(E e) :将指定元素插入此列表的开头。
void addLast(E e) :将指定元素添加到此列表的结尾。
E getFirst() :返回此列表的第一个元素。
E getLast() :返回此列表的最后一个元素。
E removeFirst() :移除并返回此列表的第一个元素。
E removeLast() :移除并返回此列表的最后一个元素。
boolean offerFirst(E e) :在此列表的开头插入指定的元素。
boolean offerLast(E e) :在此列表末尾插入指定的元素。
E peekFirst() :获取但不移除此列表的第一个元素;如果此列表为空,则返回 null。
E peekLast() :获取但不移除此列表的最后一个元素;如果此列表为空,则返回 null
E pollFirst() :获取并移除此列表的第一个元素;如果此列表为空,则返回 null。
E pollLast() :获取并移除此列表的最后一个元素;如果此列表为空,则返回 null。
七、ArrayList类:
构造方法:
ArrayList() :构造一个初始容量为 10 的空列表。
ArrayList(Collection< extends E> c) :构造一个包含指定 collection 的元素的列表,这些元素是按照该 collection 的迭代器返回它们的顺序排列的。
ArrayList(int initialCapacity) :构造一个具有指定初始容量的空列表。
方法:
boolean add(E e) :将指定的元素添加到此列表的尾部。
void add(int index, E element) :将指定的元素插入此列表中的指定位置。
booleanaddAll(Collection< extends E> c) : 按照指定 collection 的迭代器所返回的元素顺序,将该 collection 中的所有元素添加到此列表的尾部。
boolean addAll(int index, Collection< extends E> c) :从指定的位置开始,将指定 collection 中的所有元素插入到此列表中。
voidclear() :移除此列表中的所有元素。
Object clone() :返回此 ArrayList 实例的浅表副本。
boolean contains(Object o) :如果此列表中包含指定的元素,则返回 true。
voidensureCapacity(int minCapacity) :如有必要,增加此 ArrayList 实例的容量,以确保它至少能够容纳最小容量参数所指定的元素数。
Eget(int index) :返回此列表中指定位置上的元素。
intindexOf(Object o) :返回此列表中首次出现的指定元素的索引,或如果此列表不包含元素,则返回 -1。
boolean isEmpty() :如果此列表中没有元素,则返回 true
intlastIndexOf(Object o) :返回此列表中最后一次出现的指定元素的索引,或如果此列表不包含索引,则返回 -1。
boolean remove(Object o) :移除此列表中首次出现的指定元素(如果存在)。
protected void removeRange(int fromIndex, int toIndex) :移除列表中索引在 fromIndex(包括)和 toIndex(不包括)之间的所有元素。
Eset(int index, E element) :用指定的元素替代此列表中指定位置上的元素。
intsize() :返回此列表中的元素数。
Object[] toArray() :按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组。
voidtrimToSize() :将此 ArrayList 实例的容量调整为列表的当前大小。
实现了Set接口的类HashSet
“基于散列表”的检测重复元素的策略:HashSet里的元素值同这个元素在Set里所存放的索引位置有个对应关系(散列函数),在HashSet里插入元素前,可根据这个元素值和对应关系,计算出这个元素在HashSet里的插入位置,如果在这个位置里(或位置周围)已经存在了待插入元素的值,则不能插入。
构造方法
HashSet()
HashSet(
其他方法
booleancontains(Object o) 判断是否存在指定元素
HashSet类的综合应用。
Set
set.add("One"); set.add("One");
System.out.println(set.size()); //输出元素个数为:1
set.add(“Two”); System.out.println(set.size()); // 元素个数:2
System.out.println(set.contains(“One”)); //true,包含元素“One”
第一类集合有着共同的特性:它们存储的对象都是一元的(线性的),只不过存储的方式和使用的数据结构不同,以Collection为基类--封装了线性表的插入、删除等基本操作。
List接口和Set接口都是Collection的子接口
实现List接口:基于线性链表来存放数据的,例如Vector
实现Set接口:它们不允许有重复的元素,例如HashSet。
日常生活中,经常需要把复杂对象用索引形式管理的情况。
在Java中,专门建立以Hashtable为代表的“键-值”对类型对象,“键”--索引信息,而“值” –同索引值相对应的信息。
为什么要使用“键-值”对型的数据结构
原因:便于信息检索,提高在大数据量里检索信息的速度。
工作原理
(1)如果要从其中查询指定数据的话,不得不依次遍历这个数组,这样效率会很低。
(2)换一种思路:将10存入数组不是插入在第一个空闲空间里