文档章节

java容器类的继承结构

乱蓬头
 乱蓬头
发布于 2017/07/13 13:39
字数 775
阅读 1
收藏 0

摘要: java容器类的继承结构

Java容器类库定义了两个不同概念的容器,Collection和Map

  • Collection 一个独立元素的序列,这些元素都服从一条或多条规则。List必须按照插入的顺序保存元素。Set不能有重复元素。Queue按照排队规则来确定对象产生的顺序。

(文中Jdk源码版本无特殊说明均为jdk1.8.0_101)

public interface Collection<E> extends Iterable<E> {

可以看到,java定义了Collection接口和内部集合的基本操作方法,Collection默认可以进行对集合末端添加元素,删除指定元素等操作。List、Set、Queue接口都继承自Collection并定义了各自不同的方法。如果你想学习Java可以来这个群,首先是二二零,中间是一四二,最后是九零六,里面有大量的学习资料可以下载。

  • Map 一组成对的”键值对”对象,允许我们使用键来查找值。

public interface Map<K,V> {

Map内部接口Entry<K,V>对应着Map的键值对。

具体介绍

迭代器

先介绍一下迭代器。迭代器本身也是一种设计模式,设计的初衷在于:容器的实现由很多种,而我们想对容器进行遍历操作的话,首先不应该关心容器实现的细节,其次遍历操作应该是轻量级的。迭代器统一了对容器的访问方式,同时创建它的代价很小。值得注意的是,Iterator只能单向移动。

public interface Iterator<E> {

通过容器的iterator()方法拿到容器的迭代器

迭代器的next()获取下一个元素

hasNext()判断是否还有元素

remove()删除指定元素

ListIterator

ListIterator是Iterator的扩展之内,用于各种List类访问,支持双向移动。

Collection

List

List 承诺可以将元素维护在特定的序列中.List接口在Collection的基础上添加了大量的方法,使得可以再List中间插入和移除元素。

public interface List<E> extends Collection<E> {

有两种类型的List,ArrayList和LinkedList

List类型 优点 缺点 底层实现
ArrayList 随机访问元素较快 中间元素的插入和删除较慢 数组
LinkedList 中间元素的插入和删除,顺序访问的优化 随机访问元素较慢 双向链表

Set

Set不保存重复的元素,通常用于快速查找元素。值得一提的是,Set具有与Collection完全一样的接口,没有任何额外的功能。 存入的元素必须定义equals()方法

Set类型 使用场景 底层实现
HashSet 快速查找,元素必须定义hashCode() 链表
TreeSet 保持次序,元素必须实现Comparable接口 红-黑树结构
LinkedHashSet 维护次序的HashSet, 元素必须定义hashCode() 链表

Queue

除了并发应用,Queue仅有的两个实现是LinkedList和PriorityQueue, 其中LinkedList同时实现了List, Deque接口。它们的差异在于排序行为而不是性能。

本文转载自:http://click.aliyun.com/m/21646/

乱蓬头
粉丝 0
博文 382
码字总数 2595
作品 0
私信 提问
【目录导航】JAVA零基础进阶之路

【JAVA零基础入门系列】(已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day6 Java字符串 Day7 Java输入与输出...

MFrank
2018/06/21
0
0
JAVA接口的概念、分类及与抽象类的区别

Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(...

郭二翔
2011/12/17
0
0
【JAVA集合框架二 】java集合框架容器 java框架层级 继承图结构 集合框架的抽象类 集合框架主要实现类

本文关键词: java集合框架 框架设计理念 容器 继承层级结构 继承图 集合框架中的抽象类 主要的实现类 实现类特性 集合框架分类 集合框架并发包 并发实现类 什么是容器? 由一个或多个确定的元...

noteless
2018/07/09
0
0
Java集合框架(一)——集合概述

本文概述 本篇文章将分三块内容对Java中的集合框架进行介绍: 一. 集合框架相关概念 二. 集合体系通用方法 三. 集合遍历—Iteractor 一. 集合框架相关概念 集合:用于存储多个对象的容器 1....

Mr_Yanger
2017/11/11
0
0
10个最受欢迎的Java类

每一个java程序员都有一份属于自己的java类排名表。这个排名表没有严格的规定,也没有可遵循的规则,它完全取决于你参与的java项目的工作。下面这些类,不用我做过多的介绍,java程序员都知道...

迷途d书童
2012/06/01
5.3K
21

没有更多内容

加载失败,请刷新页面

加载更多

Spark内置图像数据源初探

概述 在Apache Spark 2.4中引入了一个新的内置数据源, 图像数据源.用户可以通过DataFrame API加载指定目录的中图像文件,生成一个DataFrame对象.通过该DataFrame对象,用户可以对图像数据进行简...

阿里云官方博客
24分钟前
4
0
掌握Composer

这一次,真正掌握composer composer是现代PHP的基石 现代高级编程语言,依赖管理工具是必不可少的。Java有Maven,Python有pip,Nodejs有npm, 而在composer出现之前,PHP只有被广为诟病的Pea...

城市之雾
30分钟前
3
0
Shell中的函数、数组、告警系统

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析 20.20 告警系统主脚本 20.21 告警系统配置文件 20.22 告警系统监控项目 20.23/20.24/20.25 告警系统邮件引擎 20.26 ...

tobej
31分钟前
3
0
Win7系统安装hadoop

环境准备 安装JDK1.8,配置JAVA_HOME 下载hadoop_3.1.2,配置HADOOP_HOME 配置HDFS 修改hadoop-env.cmd 增加 set HADOOP_PREFIX=%HADOOP_HOME%set HADOOP_CONF_DIR=%HADOOP_PREFIX%\etc\ha......

铲平王
34分钟前
2
0
IT兄弟连 Java语法教程 Java语言的其他特性

Java语言中除了非常重要的跨平台特性外,还有如下几个关键特性: ● 语法简单易学 Java语言的语法简单明了,容易掌握,而且是纯面向对象(OOP)的语言,Java语言的简单性主要体现在以下几个方...

老码农的一亩三分地
48分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部