Java容器框架总结(一)
本篇根据《Java编程思想》 第11章 持有对象 整理,总结Java容器框架中常用集合类及接口的特点及使用场景。
(一)总结
1)数组将数字与对象联系起来;可以保存基本类型的数据;一旦生成,容量不能改变;
2)Collection保存单一的元素,Map保存相关联的键值对;不能持有基本类型;添加更多元素时,自动调整尺寸;
3)List接口继承自Connection接口,同数组一样,也建立数字索引与对象的关联,数组和List都是排好序的容器;ArrayList和LinkedList都实现List接口,要进行大量随机访问,就使用ArrayList;如果经常从表中间插入或删除元素,则应该使用LinkedList;
4) Queue接口声明了在队列中插入和移除元素的方法,队列的规则依赖于具体实现;先进先出描述了最典型的队列规则,下一个元素应该是等待时间最长的元素,LinkedList实现了Queue接口;优先级队列声明下一个弹出元素是最需要的元素,PriorityQueue实现了Queue接口;
5)Map是一种将对象(而非数字)与对象相关联的设计。HashMap通过散列码实现Map接口,持有的键值对是无序的,用来快速访问;TreeMap通过红黑树,保持“键”始终处于排序状态;LinkedHashMap保持了元素的插入顺序,也通过散列码提供快速访问能力;
6)Set不接受重复元素。HashSet通过散列码,提供最快的查询速度;TreeSet保持元素处于排序状态;LinkedHashSet以插入顺序保存元素;
7)Iterable接口提供了返回Iterator接口的方法,Connection接口继承了Iterable接口;Iterator接口提供了hasNext、next方法和可选的remove方法;
8)ListIterator接口继承自Iterator接口,增加了反向遍历方法和可选的set方法;List接口提供了返回ListIterator接口的方法;
9)Comparable接口提供了int compareTo(T o)方法;Comparator接口提供了int compare(T o1,T o2)方法。
10)Arrays工具类,包含用来操作数组(比如排序和搜索)的各种方法。
11)Connections工具类,完全由在 Collection 上进行操作或返回 Collection 的静态方法组成。
(二)注意事项
1)Arrays的asList方法:
public static <T> List<T> asList(T... a)
- 返回一个受指定数组支持的固定大小的列表。(对返回列表的更改会“直写”到数组。)此方法同 Collection.toArray 一起,充当了基于数组的 API 与基于 collection 的 API 之间的桥梁。返回的列表是可序列化的,并且实现了
RandomAccess。此方法还提供了一个创建固定长度的列表的便捷方法,该列表被初始化为包含多个元素:
List stooges = Arrays.asList("Larry", "Moe", "Curly");
Java容器框架总结(一)的更多相关文章
- java容器的理解(collection)
容器类(Conllection)对于一个开发者来说是最强大的工具之一,可以大幅提高编程能力.容器是一个将多个元素组合到一个单元的对象,是代表一组对象的对象,容器中的对象成为它的元素. 容器适用于处理各 ...
- java容器基础
总结一下学过的java容器知识. 一.java容器框架 由于之前学习的java容器类比较混乱,先简单的整理一下java集合框架. 首先,像这种图,网上到处都是,因为这个也算比较准确吧,我也懒得自己画了 ...
- Java——容器类库框架浅析
前言 通常,我们总是在程序运行过程中才获得一些条件去创建对象,这些动态创建的对象就需要使用一些方式去保存.我们可以使用数组去存储,但是需要注意数组的尺寸一旦定义便不可修改,而我们并不知道程序在运行过程 ...
- java集合框架容器 java框架层级 继承图结构 集合框架的抽象类 集合框架主要实现类
本文关键词: java集合框架 框架设计理念 容器 继承层级结构 继承图 集合框架中的抽象类 主要的实现类 实现类特性 集合框架分类 集合框架并发包 并发实现类 什么是容器? 由一个或多个确 ...
- 从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射
从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射.Collection 接口又有 3 ...
- Java集合框架List,Map,Set等全面介绍
Java集合框架的基本接口/类层次结构: java.util.Collection [I]+--java.util.List [I] +--java.util.ArrayList [C] +- ...
- Java三大框架 介绍
三大框架:Struts+hibernate+spring Java三大框架主要用来做WEN应用. Struts主要负责表示层的显示 Spring利用它的IOC和AOP来处理控制业务(负责对数据库的操作 ...
- 22章、Java集合框架习题
1.描述Java集合框架.列出接口.便利抽象类和具体类. Java集合框架支持2种容器:(1) 集合(Collection),存储元素集合 (2)图(Map),存储键值对.
- java三大框架
1定义 集成SSH框架的系统从职责上分为四层:表示层.业务逻辑层.数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰.可复用性好.维护方便的Web应用程序.其中使用Struts作为系统的整体基础 ...
随机推荐
- python基础操作---list
#coding:utf-8 list1 = ['physics', 'chemistry', 1997, 2000]; list2 = [1, 2, 3, 4, 5 ]; list3 = [" ...
- Mongo--02 命令介绍
目录 Mongo工具 1. 查看指令 2.插入命令 3.查询命令 4.更新数据 5.索引 5.删除 6.mongo命令介绍 7.创建用户和角色 Mongo工具 1. 查看指令 test:登录时默认存在 ...
- CentOS7搭建FastDFS V5.11分布式文件系统及Java整合详细过程
1.1 FastDFS的应用场景 FastDFS是为互联网应用量身定做的一套分布式文件存储系统,非常适合用来存储用户图片.视频.文档等文件.对于互联网应用,和其他分布式文件系统相比,优势非常明显.其中 ...
- CRMEasy知识库点击无法弹出窗体问题
丢失控件 MSDATLST.OCX 将此控件放在路径下 C:\Windows\System32 并进行注册,具体方法为: 打开控件方式选择 C:\Windows\System32\reg ...
- IA学习一
1.配置User 新建用户 a. Configuration 设置用户名以及密码 b. Licensing 给予许可 Client Access License ACD Access License\ ...
- python 编码解码
一种编码想要转成另一种编码,需要先解码成万国码:Unicode,然后再从Unicode转成其他编码. 例如GBK格式想要转成utf-8,需要先按照 gbk 的格式 decode 成 unicode,再 ...
- case_match
//箭头符号 => 隔开了模式和表达式.//选择器 match {备选项}.//只要发现有一个匹配的case,剩下的case不会继续匹配. //object case_test {//// de ...
- synchronized和lock的使用分析(优缺点对比详解)
1.synchronized加同步格式: synchronized(需要一个任意的对象(锁)){ 代码块中放操作共享数据的代码. } synchromized缺陷synchronized是java中的 ...
- linux运维、架构之路-KVM虚拟化技术
一.云计算概述 云计算:是一种资源使用和交付模式 虚拟化:一种具体的技术,用来将物理机虚拟成为多个相互独立的虚拟机.云计算不等于虚拟化,云计算是使用了虚拟化的技术做支撑 二.KVM配置使用 1.系统环 ...
- 小程序cover-view
cover-view包裹的元素设置定位,元素内容长短会影响cover-view的位置,即使设置的left,top一致 最佳解决方法,就是给cover-view设置宽度