Java集合框架中接口之间的关系

一、集合框架介绍

java集合框架,又被称为容器,是定义在Java.Util包中一组接口及其实现类,,用于存储数据进行增删查改(CRUD)等操作。
使用集合框架有助于便捷快速的写出高效、稳定的代码,每一个集合背后都有对应的数据结构。

二、接口关系说明

Java集合分为CollctionMap两大接口

1.Iterable接口

迭代器,提供foreach()遍历集合元素的功能。

2.Collection集合

在这里插入图片描述
储存管理一组对象(Object),这些对象称为元素(elements),实现Iterable接口。
特点:一次储存一个元素,单列集合。

修饰符和返回类型方法用途
booleanadd(E e)向集合中添加元素
booleanaddAll(Collection<? extends E> c)将指定集合中的所有元素添加到此集合(可选操作)
voidclear()从此集合中删除所有元素(可选操作)
booleancontains(Object o)如果此集合包含指定的元素,则返回 true
booleancontainsAll(Collection<?> c)如果此集合包含指定集合中的所有元素,则返回 true。
booleanequals(Object o)将指定的对象与此集合进行比较以确定相等性。
inthashCode()返回此集合的哈希代码值。
booleanisEmpty()如果此集合不包含任何元素,则返回 true。
Iteratoriterator()返回对此集合中元素的迭代器。
default StreamparallelStream()返回可能与此集合作为其源的并行集合。Stream
booleanremove(Object o)从此集合中删除指定元素的单个实例(如果存在)(可选操作)。
booleanremoveAll(Collection<?> c)删除此集合的所有元素,这些元素也包含在指定的集合中(可选操作)。
default booleanremoveIf(Predicate<? super E> filter)删除此集合中满足给定谓词的所有元素。
booleanretainAll(Collection<?> c)仅保留此集合中包含在指定集合中的元素(可选操作)。
intsize()返回此集合中元素的数目。
default Spliteratorspliterator()在此集合中的元素上创建拆分器。
default Streamstream()返回一个以此集合作为其源的顺序。Stream
Object[]toArray()返回一个数组,其中包含此集合中的所有元素。
(1)List线性表

应用场景:需要快速查询的场景、消息队列、排行榜等。

Collection派生出的子接口,代表有序可重复集合,线性结构。

AbstractList抽象类:实现List接口,派生出Vector(动态数组)、Stack(栈)、ArrayList(顺序表)、LinkedList(链表)实现类,LinkedList可以作为双链表,也可以作为普通队列(Queue)或作为双端队列(Deque)的实现类。

Queue队列:Collection派生出的子接口,队列结构,元素只能从队尾入队,队头出队。

Deque:Queue派生出的子接口,双端队列,元素既可以队头进队头出,也可以队尾进队尾出。

PriorityQueue:Queue接口的实现类,代表优先级队列,二叉树结构,每个元素都具备优先级,根据优先级入队出队。

(2)Set集合

应用场景:数据重组,数据储存。

Collection派生出的子接口,代表不可重复元素的集合。
SortedSet:Set派生出的子接口,具备Set的功能,可以在放入元素的时候排序。
HashSet:Set接口实现类,哈希表结构,集合内元素无序。
TreeSet:SortedSet接口的实现类,红黑树结构,集合内元素有序。

3.Map集合

在这里插入图片描述

采用键值对Map<K,V>的方式存储元素,保存具有映射关系的数据,Map集合存储两组具有对应关系的值key、Value,key值可以为null,不可以重复,如果添加key-value对时Map中已经有重复的key,则新添加的value会覆盖该key原来对应的value。常用实现类有HashMap、LinkedHashMap、TreeMap等。

修饰符和返回类型方法用途
Vget(Object k)根据指定的key查找对应的value
VgetOrDefault(Object k, V defaultvalue)根据指定的key查找对应的value,若没有则用默认值代替
Vput(K key, V value)将指定的 k-v 放入 Map
booleancontainsKey(object key)判断是否包含key
booleancontainsValue(object value)判断是否包含value
Set<Map.Entry<K, V>>entrySet()返回所有键值对
intsize()返回键值对数目
(1)SortMap

Map派生出的子接口,有序键值对,可以应用于查找/搜索。
TreeMap:SortMap实现类,红黑树数据结构,每个键值对key-value作为红黑树的一个节点,TreeMap存储key-Map对时需要根据key对节点进行排序。
TreeMap的两种排序方式:
—自然排序:TreeMap的所有key实现Comparable接口,而且所有的key应该是同一个类的对象,否则会抛出ClassCastException。
—定制排序:创建TreeMap时,传入一个Comparator对象,该对象负责对TreeMap中的所有key进行排序。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值