java集合-map和queue的方法

Posted 藤原拓海

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java集合-map和queue的方法相关的知识,希望对你有一定的参考价值。

  从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射。Collection 接口又有 3 种子类型,List、Set 和 Queue,再下面是一些抽象类,最后是具体实现类,常用的有 ArrayList、LinkedList、HashSet、LinkedHashSet、HashMap、LinkedHashMap 等等。 

一、Collection接口

  Collection 接口是List、Set 和Queue接口的父接口,该接口里定义的方法既可用于操作,Set集合,也可用于操作List和Queue集合。Collection接口里定义了如下操作集合元素的方法。
boolean add(Object o):  该方法用于向集合里添加一-个元素。如果集合对象被添加操作改变了,则返回true。
boolean addAll(Collection c):  该方法把集合c里的所有元素添加到指定集合里。如果集合对象被添加操作改变了,则返回true。
void clear():  清除集合里的所有元素,将集合长度变为0。
boolean contains(Object 0):  返回集合里是否包含指定元素。
boolean containsAll(Collection c):  返回集合里是否包含集合c里的所有元素。
boolean isEmpty():  返回集合是否为空。当集合长度为0时返回true,否则返回false。
Iterator iterator():  返回-个Iterator 对象,用于遍历集合里的元素。
boolean remove(Object o):  删除集合中的指定元素o,当集合中包含了一一个或多个元素o时,该方法只删除第一一个符合条件的元素,该方法将返回true.
             
boolean removeAll(Collction c):从集合中删除集合c里包含的所有元素(相当于用调用该方法的集合减集合c),如果删除了一个或一一个以上的元素,则该方法返回true。
              
boolean retainAll(Collction c):  从集合中删除集合c里不包含的元素(相当于把调用该方法的集合变成该集合和集合c的交集),如果该操作改变了调用该方法的集合,则该方法返回true.
              
int size();  该方法返回集合里元素的个数。
Object[] toArray():  该方法把集合转换成-个数组,所有的集合元素变成对应的数组元素。

二、Map接口

 

1

void clear( )

 从此映射中移除所有映射关系(可选操作)。

2

boolean containsKey(Object k)

如果此映射包含指定键的映射关系,则返回 true。

3

boolean containsValue(Object v)

如果此映射将一个或多个键映射到指定值,则返回 true。

4

Set entrySet( )

返回此映射中包含的映射关系的 Set 视图。

5

boolean equals(Object obj)

比较指定的对象与此映射是否相等。

6

Object get(Object k)

返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。

7

int hashCode( )

返回此映射的哈希码值。

8

boolean isEmpty( )

如果此映射未包含键-值映射关系,则返回 true。

9

Set keySet( )

返回此映射中包含的键的 Set 视图。

10

Object put(Object k, Object v)

将指定的值与此映射中的指定键关联(可选操作)。

11

void putAll(Map m)

从指定映射中将所有映射关系复制到此映射中(可选操作)。

12

Object remove(Object k)

如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。

13

int size( )

返回此映射中的键-值映射关系数。

14

Collection values( )

返回此映射中包含的值的 Collection 视图。

三、java Stack类

栈是Vector的一个子类,它实现了一个标准的后进先出的栈。

堆栈只定义了默认构造函数,用来创建一个空栈。 堆栈除了包括由Vector定义的所有方法,也定义了自己的一些方法。

1

boolean empty()

 测试堆栈是否为空。

2

Object peek( )

查看堆栈顶部的对象,但不从堆栈中移除它。

3

Object pop( )

移除堆栈顶部的对象,并作为此函数的值返回该对象。

4

Object push(Object element)

把项压入堆栈顶部。

5

int search(Object element)

返回对象在堆栈中的位置,以 1 为基数。

四、Queue

1

void add(Object e)

将指定元素加入此队列的尾部。

2

boolean offer(Object e)

将指定元素加入此队列的尾部。

3

Object poll()

获取队列头部元素,并删除该元素。

4

Object remove()

获取队列头部元素,并删除该元素。

5

Object peek()

获取队列头部元素,但是不是删除该元素。

 

区别:

1.offer,add区别:
一些队列有大小限制,因此如果想在一个满的队列中加入一个新项,多出的项就会被拒绝。
这时新的 offer 方法就可以起作用了。它不是对调用 add() 方法抛出一个 unchecked 异常,而只是得到由 offer() 返回的 false。 
2.poll,remove区别:
remove() 和 poll() 方法都是从队列中删除第一个元素。remove() 的行为与 Collection 接口的版本相似,但是新的 poll() 方法在用空集合调用时不是抛出异常,只是返回 null。因此新的方法更适合容易出现异常条件的情况。
3.peek,element区别:
element() 和 peek() 用于在队列的头部查询元素。与 remove() 方法类似,在队列为空时, element() 抛出一个异常,而 peek() 返回 null。

五、 Java 8改进的List接口

List作为Collection接口的子接口,当然可以使用Collection 接口里的全部方法。而且由于List 是有序集合,因此List集合里增加了一些根据索引来操作集合元素的方法。

1.➢void add(int index, Object element)  :将元素element插入到List集合的index处。

2.➢boolean addAll(int index, Collection c)  : 将集合c所包含的所有元素都插入到List集合的index处。
3.➢Object get(int index)  :返回集合index 索引处的元素。
4.➢int indexOf(Object o)  :返回对象o在List集合中第一次出现的位置索引。
5.➢int lastIndexOf(Object o)  :返回对象o在List集合中最后-次出现的位置索引。
6.➢Object remove(int index)  :删除并返回index索弓|处的元素。
7.➢Object set(int index, Object element)  :将index索引处的元素替换成element对象,返回被替换的旧元素。
8.➢List subList(int fromIndex, int toIndex)  :返回从索引fromIndex (包含)到索引toIndex (不包含)处所有集合元素组成的子集合。所有的List实现类都可以调用这些方法来操作集合元素。与Set集合相比,List 增加了根据索引来插入、替换和删除集合元素的方法。除此之外,Java 8还为List接口添加了如下两个默认方法。
9.➢void replaceAl(UnaryOperator operator)  :根据operator指定的计算规则重新设置List集合的所有元素。
10.➢void sort(Comparator c)  ;根据Comparator参数对List集合的元素排序。

 

以上是关于java集合-map和queue的方法的主要内容,如果未能解决你的问题,请参考以下文章

java集合

java阶段三-Queue集合Set集合Map集合异常机制

java 集合

Java Collection集合中List,Set,Queue以及Map的使用

java集合List,Map,Set,Queue使用

Java 集合和泛型