Java容器类类库概述

注:本文讨论是建立在Java 8 基础上的

简介

Java容器类类库是Java提供的有效组织和操作数据的数据结构,其主要用途是“保存对象”,并且被划分为两个不同的概念:

    1. Collection 一个独立元素的序列,这些元素符合一条或者多条规则。 例如List, Set, Queue
    1. Map 一组成对的“键值对”对象,即 “key-value”对象,允许使用键来查找值操作。我们可以将数值与数值关联,这时可以将map理解为一个数值数组;同样可以将数值与对象关联,这时将其称之为映射表,或者是关联数组;又或者可以理解为字典结合等等。Java程序最终使用的数据结构都是继承自这两个接口。如下图所示为Java集合类结构类图:
      00-collection
      从上面类图可以看到,集合类框架顶级主要是两类Collection和Map,也就是两个大的体系,其中包含了Set、List、Queue 和 Map.以下我们将逐一介绍它们实现的数据结构和各自的特点。

Collection和Map接口

两个接口分别实现定义了两种不同集合的顶级数据结构,我们可以将Collection理解为一个独立的元素序列,而将Map理解为键值对的集合,其中每个元素都是一个key-value键值对。两个接口的定义如下:

Collection接口的定义:
01-collection-interface
Map接口的定义:
02-map-interface


List接口

List接口扩展自Collection接口,其定义了一个列表(即数组、队列、链表、栈等基本数据结构),其特点是List中的元素可以重复,List常用的实现类由ArrayList和LinkedList,另外还有早期的Vector向量。值得一提的是LinkedList同样实现了Queue接口,因此它也可以当作队列使用。

List接口的定义:
03-List-interface


Set接口

Set接口扩展自Collection接口,其定义了一个集合,它与数学上集合的概念十分相似,最主要的特点是Set中的元素无序且不允许重复,也就是两两互异(这一点通常通过hashcode和equals方法保证),Set常用的实现类由HashSet和TreeSet, HashSet是通过适配Map中的HashMap实现的;类似的,TreeSet是通过适配Map中的TreeMap实现的。另外,TreeSet试下鸟类SortedSet接口,所以它是一个有序集合。其接口定义如下:

04-set-interface


Queue接口

Queue接口扩展自Collection接口,其定义了一个队列,使用先进先出(First In Frist Out, FIFO)的数据结构,Queue中的元素在队列末尾添加,在队列头部访问取出。

Queue接口的定义:
05-queue-interface


小结

Java容器类类库提供了包括List、Set、Queue和Map在内的实用类库,这些类提供了完善的方法来保存数据对象;并且这些容器类在一定程度上对基本数据结构提供了高效率的实现。熟练的应用能够极大的提高我们的编程效率。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值