Java之Java集合框架

(本文为博主JAVA课程学习总结)

一.集合框架介绍

集合框架:用来表示和操作集合的统一的架构。

集合类存放java.util包中。

较重要的几个集合类与相关接口:Iterable(迭代器接口)、Collection(类集接口)、List(列表接口)、Set(数据集接口)、Queue(队列)、Map(键-值对组合映射表)

层次结构图(这张图片很重要,箭头指向父类):

源自海同网校


 

(一)Iterable接口

通过Iterable接口可以实现“foreach”语句(增强for循环),即:

 

Iterator:迭代器类,是Iterable接口中的方法,也作为另一个接口存在。Iterable接口的Iterator方法是返回一个迭代器(即Iterator对象)。而Iterator接口中的方法实现依赖于迭代器的当前迭代位置。二者不同,具体可查看API文档。

通过Iterator迭代器实现ArrayList的元素遍历:

 

Listiterator:Iterator的子类,允许双向遍历集合并修改和删除元素。

 

(二)Collection接口

Collection接口是层次结构中的根接口。

Collection接口定义的方法:int size()boolean isEmpty()boolean contains(Object o)……(具体可参照API说明文档)

(三)ListSetMap接口

List接口:对Collection接口的扩展,有序且可重复

Set接口:对Collection接口的扩展,无序且不可重复

Map(映射)接口:存储关键字-值对的对象(简称键值对)。当给定一个关键字时,可查询得到它的值。这里关键字和值都可以是对象

注意:Map不是Collection的子接口,故无法采用迭代器遍历。

 

二.List容器

List容器中,有些类似于数组,可以直接通过元素在列表中的位置来访问元素。

(一)ArrayList —— 动态数组

ArrayList常用方法:

E getint index) 返回列表中指定位置上的元素(EArrayList中的类型参数)

int indexOfObject o) 返回此列表中首次出现指定元素的索引,若不包含则返回-1

具体可查看API文档。

优点:ArrayList查询效率较高。且ArrayList的实现是不同步的,所以在单线程中效率较高。

缺点:插入、删除效率低。

(二)LinkedList —— 链表

常用方法:

void addFirst(E e)     将指定元素插入此列表的开头。

E removeFirst()      移除并返回此列表的第一个元素。

LinkedList继承了DequeQueue的子类),故具有双向队列的一些特有性质。

优点:做插入、删除效率较高。

缺点:查询效率低。

三.Map容器

Map容器中的键(key)必须是唯一的,值(value)是可以重复的。

注:有些映射可以接收null键与null值,而有些不行。

支持映射的接口:MapMap.EntrySortedMap

常用方法:int size()、boolean isEmpty()、boolean containsKeyObject key)、boolean containsValueObject value)、V getObject key)、V putK key, V value)、Set<Map.Entry<K,V>>entrySet()(返回包含映射关系的Set视图)……

具体可参照API说明文档

(一)Map.Entry接口

Map.Entry接口类似于Iterator接口,表示的是键值对(映射项),它是Map接口的内部接口。

(二)HashMap

HashMap类是基于哈希表的Mao接口实现。(允许使用null键和null值)

注:HashMap不保证映射的顺序。

构造方法与常用方法可参照API文档。

HashtableHashMap的前身。

设计Hashode()方法时,最好让不相等的对象生成不同的整数结果。(如果编程者对HashCode方法有特定要求,可进行重写。)

四.Set容器

Set容器是一个不包含重复元素的Collection,最多包含一个null元素。Set容器无法保证元素顺序。

(一)HashSet

HashSet使用哈希表进行存储。

HashSet中的方法全部继承自父类和接口。

HashSet实际上是HashMap的一个实例,HashSet的内部操作底层数据是HashMapkey

(二)TreeSet

TreeSet:通过使用树来进行对Set中的对象进行升序存储。(是TreeMap的一个实例,TreeSet的内部操作底层数据是TreeMapkey

优点:访问和检索速度很快,适用于存储大量需要快速检索的排序信息。

五.Collections

Collections类中包含了若干类集和映射的算法,也就是说Collections类是为上述的几种特殊的类集和映射服务的,我们可以通过调用Collections类来实现对数据的排序处理等。

常用方法:

public static int binarySearchList<T>  list, T key)  

使用二分搜索法搜索指定列表,以获得指定对象。

public static void reverseList<> list

反转指定列表中元素的顺序。

public static void shuffleList<> list

打乱指定列表中元素的顺序。

……(具体可查看API文档)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值