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作为系统的整体基础 ...
随机推荐
- 管线命令(Pipe)
管线命令接受|前面传来的stdout,管线示意图如下所示: 管线两个需要注意的地方: 1.管线仅会处理stdout,忽略对stderr的处理 2.管线必须接受前个指令的stdin才是 那么,如果我想接 ...
- windows_vs编译过程
visual studio 2010 编译程序时,首先是cpp经过预处理,处理掉#define,#include等等.#include部分,将头文件部分替换到cpp中.之后进行优化过程,到.s.之后进 ...
- vue的v-for循环渲染列表时,解决没有:key警告问题(:key的作用)
:key是为vue的响应式渲染提供方法,在列表中单条数据改变的情况下,可以进行单独渲染,减少页面资源消耗. 当前页面如果有列表渲染v-for,并且在v-for的循环标签中没有:key元素时,控制台会出 ...
- ivew 封装删除 对话框
封装的组件 <template> <Modal footer-hide :closable="false" title="删除确认" v-mo ...
- 关于下拉框的onchange事件和onclick选择value值。
下拉框的onchange事件和onclick,一般最好都选择onchange事件,onclick可能会不兼容有些浏览器. 下面是代码: <!DOCTYPE html><html la ...
- lambda匿名函数sorted排序函数filter过滤函数map映射函数
lambda函数:表示匿名函数,不需要def来声明,一句话就能搞定. 语法:函数名=lamda 参数:返回值 求10的10次方 f=lambda n:n**n print(f(10)) 注意: 函数名 ...
- 微信小程序-wxml-空格
必须要在<text>标签中 先在标签中写decode="{{true}}"然后 就代表空格了 占一个中文字符
- SQL Server性能调优--优化建议(一)
序言 当数据量小的时候,SQL优化或许无关紧要,但是当数据量达到一定量级之后,性能优化将变得至关重要,甚至决定系统成败. 定位慢查询 查询编译以来cpu耗时总量最多的前50条 --查询编译以来 cpu ...
- HDU 6581 Vacation
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission( ...
- Mysql索引深入理解
一. 引言 Mysql 我们平常用的很多,了解的很多,今天别的不说,直接说mysql的底层是什么,说到底层,就想到数据结构,那么,mysql的数据结构是什么呢? 是B + tree .那么数据库中的 ...