ArrayList&LinkedList&Map&Arrays

时间:2021-05-04 09:14:50

Java集合框架

1:集合接口

1.1:Collection接口

Collection接口是构造集合框架的基础。它声明所有类集合都将拥有的核心方法

Boolean add(Object obj)

将obj加入到调用类集合中,加入返回true 否则 返回 false

Boolean addAll(Collection c)

将c中所有元素都加入到类集合中,都加入返回true否则 false

Void clean()

从调用类集合中删除所有元素

Boolean contains(Object obj)

如果obj是调用类集合的一个元素,则返回true否则 false

Boolean containsAll(Collection c)

如果调用类集合中包含了c中所有元素返回true 否则返回false

Boolean equals(Object obj)

如果调用类集合与obj相等,则返回true否则返回false

Int hashCode()

返回调用类集合的散列值

Iterator iterator()

返回调用类集合的迭代器

Boolean remove(Object obj)

从调用类集合中删除obj一个实例 成功 返回 true 否则 返回 false

Boolean removeAll(Collection c)

从调用类集合中删除c的所有元素,成功 返回 true 否则 返回 false

Boolean retainAll(Colletion c)

删除调用集合类中除了包含在c中之外的所有的元素,成果 返回 true 否则 返回 false

Int size()

返回调用类集合中元素个数

Object[] toArray()

返回一个数组,该数组包含所有调用类集合中的元素

1.2 LIst接口

 LIst接口继承了Collection并声明了类集的新特性。使用一个基于零的下标,元素可以通过他们在他们列表中的位置被插入和访问。一个列表可以包含重复元素

Void add(int index,Object obj)

将obj插入调用列表,插入的位置由index传递,任何已存在的在插入点以及插入点之后的元素将后移 因此元素没有被覆盖

Boolean addAll (int index,Collection c)

将c中的元素插入到调用列表中,插入点的下标由index传递 任何已存在的在插入点以及插入点之后的元素将后移 因此元素没有被覆盖 成功返回 true否则返回false

Object get(int index)

返回存储在调用类集内指定下标处的对象

Int indexOf(Object obj)

返回调用列表中obj的第一个实例的下标,如果obj不是类表中的元素,则返回-1

Int lastIndexOf(Object obj)

返回调用列表中obj的最后一个实例的下标,如果obj不是类表中的元素,则返回-1

Object remove(int index)

删除调用列表中index位置的元素并返回删除的元素。删除后,列表被压缩。也就是说,被删除元素后面的元素向前移动

Object set(int index,Object obj)

用obj对调用列表内由index指定的位置进行赋值

List subList(int start,int end)

返回一个列表,该列表包括了调用类表中从start 到 end-1的元素

1.3 Set接口

Set接口定义了一个集合。它继承了Collection并说明了不允许重复元素的类集特点,因此试图将重复的元素加到集合中时,add()方法就会返回false

1.4 Queue和Deque接口

Queue<E>接口(E表示复合元素的类型)扩展了Collection接口,定义了一个队列数据结构的操作方式。特点:LIFO后进先出

boolean add(E e) 添加

将制定的元素插入队列(如果立即可行并且不会违反容量限制),在成功时返回true,如果当前没有可用的容量,输出IllegalStateException

Boolean offer(E e) 添加

在有容量时,此方法要优于上一个方法,反之,可能无法插入元素,而只是抛出一个异常

E remove() 移除

获取并移除此队列的头,此方法与poll唯一的不同在于此队列为空时,将抛出一个异常

E poll() 移除

获取并移除此队列的头,如果此队列为空,则返回null

E element() 获取

获取,但不移除此队列的头,此方法与peek方法不同之处在于,次队列为空时将会抛出一个异常

E peek() 获取

获取但不移除此队列的头;如果此队列为空时,则返回null

1.2.1实现LIst接口的类

ArrayList类:ArrayList继承了AbstractList并实现了List接口。ArrayList支持可随需要增长的动态数组,在Java中,标准数组是定长的,而ArrayList是变长,ArrayList的对象以一个初始大小被创建。当超出了它的大小时,可以自动增大,当对象被删除后,就可以自动缩小

 LinkedList: LinkedList的存储方式是链式的,所以每个元素都记录了前一个元素和后一个元素,故插入元素较快 LinkedList是使用指针关联的双向链表,其获取下一个元素的方式是通过指向下一个元素的地址对象(指针) 获取的.

HahSet类:集合不含有相同的元素。

Map:映射接口

除了类集,映射是一个存储关键字和值的关联或者说是关键字/值对应的集合。给定一个关键字,可以得到它对应的值。关键字和值都是对象,每一对关键字/值,叫做一项。关键字必须是唯一的。但是值可以重复。有些映射可以接收null关键字和null值,有的则不行

接口

描述

Map

唯一关键字映射到值

Map.Entry

描述映射中的项(关键字/值对),Map内部接口

SortedMap

继承Map以便关键字按升序存储

Map中定义的方法

Void clear()

从映射中删除所有的关键字/值 对

boolean containsKey(Object k)

是否包含该关键字K

boolean containsValue(Object v)

是否包含该v值

Set entrySet()

返回包含了映射中的项的集合(Set)

Boolean isEmpty()

如果映射是null返回true 否则返回false

Boolean equals(Object obj)

如果obj是个Map并包含相同的项则返回true

Object get(Object k)

通过k获取到value

Int hashCode()

返回映射的散列值

Set keySet()

返回关键字Set集合

Object put(Object k,Object v)

添加

Void putAll(Map m)

将m中的所有项都添加

Object remove(Object k)

删除

Int size()

大小

Collection values()

返回一个包含映射中值的类集

Arrays 类

这个类提供了各种在进行数组运算时很有用的方法。

asList()

返回一个被数组支持的List

binarySearch()

在不同类型的数组中搜素特定值

equals()

比较两个数组是否相同

fill()

用一个指定的值填充数组

sort()

对不同类型的数组排序