1.Collection 接口:用于表示任何对象或元素组。
(1) 单元素添加、删除操作:
boolean add(Object o):将对象添加给集合
boolean remove(Object o): 如果集合中有与o相匹配的对象,则删除对象o
(2) 查询操作:
int size() :返回当前集合中元素的数量
boolean isEmpty() :判断集合中是否有任何元素
boolean contains(Object o) :查找集合中是否含有对象o
Iterator iterator() :返回一个迭代器,用来访问集合中的各个元素
(3) 组操作 :作用于元素组或整个集合
boolean containsAll(Collection c): 查找集合中是否含有集合c 中所有元素
boolean addAll(Collection c) : 将集合c 中所有元素添加给该集合
void clear(): 删除集合中所有元素
void removeAll(Collection c) : 从集合中删除集合c 中的所有元素
void retainAll(Collection c) : 从集合中删除集合c 中不包含的元素
(4) Collection转换为Object数组 :
Object[] toArray() :返回一个内含集合所有元素的array
Object[] toArray(Object[] a) :返回一个内含集合所有元素的array。运行期返回的array和参数a的型别相同,需要转换为正确型别。
Collection不提供get()方法。如果要遍历Collectin中的元素,就必须用Iterator。
1.2.Iterator 接口
Collection 接口的iterator()方法返回一个 Iterator。
(1) boolean hasNext(): 判断是否存在另一个可访问的元素
Object next(): 返回要访问的下一个元素。如果到达集合结尾,则抛出
NoSuchElementException异常。
(2) void remove(): 删除上次访问返回的对象。
2.List接口
List 接口继承了 Collection 接口以定义一个允许重复项的有序集合。该接口不但能够对列表的一部分进行处理,还添加了面向位置的操作。
void add(int index, Object element): 在指定位置index上添加元素element
boolean addAll(int index, Collection c): 将集合c的所有元素添加到指定位置index
Object get(int index): 返回List中指定位置的元素
int indexOf(Object o): 返回第一个出现元素o的位置,否则返回-1
int lastIndexOf(Object o) :返回最后一个出现元素o的位置,否则返回-1
Object remove(int index) :删除指定位置上的元素
Object set(int index, Object element) :用元素element取代位置index上的元素,并且返回旧的元素
ListIterator listIterator() : 返回一个列表迭代器,用来访问列表中的元素
ListIterator listIterator(int index) : 返回一个列表迭代器,用来从指定位置index开始访问列表中的元素
3.Set接口及其实现
HashSet是使用一个哈希表存储元素的,是非排序的,可以随机访问,是Set的最优性能实现.TreeSet实现了SortedSet接口,使用一个红黑树来存储元素,提供了元素的有序存储和访问.
HashSet在底层实现上依赖于HashMap.
public HashSet() {
map = new HashMap<E,Object>();
}
public boolean add(E o) {
return map.put(o, PRESENT)==null;
}
public boolean remove(Object o) {
return map.remove(o)==PRESENT;
}
public boolean contains(Object o) {
return map.containsKey(o);
}
从代码可见,HashSet在底层借用HashMap,使用一个Object类型的哑元值作为HashSet中元素在底层HashMap存储中的映射值.它抓住了HashMap的键不允许重复的特性.对于add()中调用底层映射的put(),将欲添加的元素和一个PRESENT哑元值放入底层map.如果底层Map返回null,说明原来的集合中并不存在该键.
注意:对于Map接口的put()返回null时有两种解释,一是原来的Map中不包含该键;另一种可能是原来的Map中已经存储了该健,但该键映射到null.而在HashSet中的add()和remove()等中的返回null只有一种解释,即原来的集合不包含该元素.这是因为HashSet的底层的映射中存储的都是一个名为PRESENT的Object类型的对象,不可能是null.
4. Map接口
(1) 添加、删除操作:
Object put(Object key, Object value): 将互相关联的一个关键字与一个值放入该映像。如果该关键字已经存在,那么与此关键字相关的新值将取代旧值。方法返回关键字的旧值,如果关键字原先并不存在,则返回null
Object remove(Object key): 从映像中删除与key相关的映射
void clear(): 从映像中删除所有映射
(2) 查询操作:
Object get(Object key): 获得与关键字key相关的值,并且返回与关键字key相关的对象,如果没有在该映像中找到该关键字,则返回null
boolean containsKey(Object key): 判断映像中是否存在关键字key
boolean containsValue(Object value): 判断映像中是否存在值value
int size(): 返回当前映像中映射的数量
boolean isEmpty() :判断映像中是否有任何映射
分享到:
相关推荐
Java 集合框架概述 Java 集合框架是 Java 语言中提供的一种统一的标准体系结构,...Java 集合框架是 Java 语言中的一种重要组件,提供了丰富的接口和类,简化了集合操作,并提高了编程效率、代码可读性和可维护性。
### Java中常用集合类和接口详解 #### 一、引言 在Java编程中,集合类(Collections)是非常重要的组成部分,它们提供了灵活的数据管理和组织方式。本文将详细介绍Java中的主要集合类及其接口,帮助读者更好地理解...
实现该接口的集合类包括三个通用实现类哈希集合类、树集合类和链接哈希集合类。 2. 列表接口 列表是一种有序的元素集合。实现该接口的集合类包括数组链表类和链接链表类。 3. 队列接口 队列是一种先进先出的数据...
这些类提供了基础的数据结构和方法,如添加元素、删除元素、查找元素等。然而,标准库中的集合可能并不完全符合所有项目的需求,因此,开发人员会创建自定义集合类来扩展这些功能。 创建自定义集合类通常涉及以下...
Java 集合类是 Java 语言中的一种基本数据结构,用于存储和操作大量数据。集合类可以分为三大类:Collection、List 和 Set。 Collection 是集合框架中的根接口,提供了基本的集合操作,如 add、remove、contains 等...
子类可以基于此抽象类实现自定义的集合类,但仍需实现接口中未提供的其他方法。 4. **Iterator接口**: - Iterator是遍历集合的关键,通过`hasNext()`判断是否存在下一个元素,`next()`返回下一个元素,`remove()...
Java集合类是Java编程语言中一个非常重要的概念,它提供了数据结构和算法的实现,使得在处理一组对象时更加高效和灵活。Java集合框架包括接口(如List、Set、Queue等)和实现这些接口的类(如ArrayList、HashSet、...
【JAVA知识:面向对象的特征,接口,集合类等】 在JAVA编程中,面向对象的特征是核心概念,包括抽象、继承、封装和多态性。 1. 抽象:抽象是面向对象编程的基础,它关注的是对象的主要特征,忽略不重要的细节。...
Collection接口是集合层次中的根接口,它位于层次的最顶端,规定了集合类应提供哪些基本操作,例如添加、删除、遍历元素等。JDK中并没有提供Collection接口的直接实现,而是提供了子接口Set、List和Queue。 Set接口...
Java集合类可以分为两种:Collection接口和Map接口。Collection接口有两个子接口:List接口和Set接口。List接口是有序的,可以重复元素,常用的实现类有ArrayList和LinkedList。Set接口是无序的,不允许重复元素,...
Java集合类是Java编程语言中用于存储和管理对象的关键组件,它们构成了Java Collections Framework的核心。这个框架提供了一组高效、灵活的数据结构,使得开发者能够轻松地处理数据集合,而无需关心底层实现的复杂性...
集合类的框架为集合的实现者提供了大量的接口和抽象类,并对其中的某些机制给予了描述,例如,Iterator(迭代协议)。实现Comparable接口或Comparator接口,用户可以根据需要对集合中的元素进行排序。为了方便用户...
在Java集合框架中,各种接口和类之间的关系密切,它们各自有不同的特性和使用场景。理解这些接口和类的特性和用途,能够帮助开发者选择最适合的数据结构来存储和操作数据,提高代码的效率和可维护性。在实际编程中,...
Java的集合类是Java编程中不可或缺的一部分,它们用于存储、管理和操作对象。集合框架是一个类库的集合,提供了表示和操作集合的统一架构。在这个框架中,主要关注四个核心接口:Collection、Set、List和Map。 1. *...
以上是对Java编程中集合类的相关知识点进行了详细的介绍,包括了集合类的概念、分类、常用接口及其实现类、异常处理以及泛型的使用等重要内容。掌握这些知识点对于深入理解和使用Java集合框架至关重要。
通过以上内容的学习,我们不仅理解了泛型的基本概念和使用方法,还深入了解了Java集合类的相关知识,特别是`List`接口及其具体实现类的特点和使用场景。这对于日常开发中高效管理和操作数据具有重要意义。
`Collection`是集合框架的根接口,所有具体集合类都实现了这个接口。它定义了一些基本方法用于添加、删除、判断元素是否存在等操作。`Collection`接口的主要实现包括`List`、`Set`和`Queue`。 #### List接口 `List`...
本文将深入探讨Java集合类的汇总,包括List、Set和Map这三大核心接口及其实现类。 首先,让我们从List接口开始。List是一种有序的集合,允许有重复元素,并且支持通过索引来访问元素。ArrayList和LinkedList是List...
Java集合类——List接口 Java中的集合类是用来存放对象的,相当于一个容器,里面包容着一组对象。Java API提供的集合类位于java.util包内。Java中的集合类可以分为两类,一类是数组,另一类是集合。数组也是容器,...
【集合类及其分支】在Java编程中,集合框架扮演着至关重要的角色,为开发者提供了高效地存储和操作数据的工具。这些工具主要集中在`java.util`包中,其中包括了多种数据结构的实现,如线性表、链表、哈希表等。本文...