Java---容器基础总结
Java提供了大量持有对象的方式:
(1) 数组将数字与对象联系起来。 它保存类型明确的对象,查询对象时,不需要对结果做类型转换。它可以是多维的, 可以保存基本类型的数据。 但是,数组一旦生成,其容量就不能改变。
(2)Collection保存单一的元素,而Map保存相关联的键值对。有了Java的泛型,你就可以指定容器中存放的对象类型, 因此你就不会将错误类型的对象放置到容器中,并且在从容器中获取元素时,不必进行类型转换。各种Collection 和各种Map都可以在你向其中添加更多的元素时,自动调整其尺寸。 容器不能持有基本类型,但是自动包装机制会仔细地执行基本类型到容器中所持有的 包装器类型之间的双向转换。
(3)像数组一样,List也建立数字索引与对象的关联,因此,数组和List都是排好序的容器。 List能够自动扩充容量。
(4)如果要进行大量的随机访问, 就使用ArrayList(具有数组的特性),如果要经常从表中间插入或删除元素,则应该使用 LinkedList(具有链表的特性)
(5)各种Queue(队列)以及栈的行为, 由LinkedList提供支持。
(6)Map是一种将对象(而非数字)与对象相关联的设计。HashMap设计用来快速访问,而TreeMap保持 “键” 始终处于排序状态,所以没有 HashMap快。LinkedHashMap保持元素插入的顺序, 但是也通过散列提供了快速访问能力。
(7)Set不接受重复元素。HashSet提供最快的查询速度,而TreeSet保持元素处于排序状态。
LinkedHashSet以插入顺序保存元素。
Java容器的简图(不包含抽象类和遗留构件):
你可以看到, 其实只有四种容器: Map、List 、Set和 Queue,它们各有两到三个实现版本。常用的容器用黑色粗线框表示。 点线框表示接口, 实线框表示普通的(具体的) 类。带有空心箭头的点线表示一个特定的类实现了一个接口, 实心箭头表示某个类可以生成箭头所指向类的对象。 例如, 任意的 Java的容器每天都会用到的工具, 它可以使程序更简洁更强大更高效。 |
4.Java容器---Arrays & Collections工具类
5.Java容器---字符容器StringBuffer & StringBuilder
7.java容器---Comparable & Comparator
8.Java容器---Set基础: HashSet & TreeSet & LinkedHashSet
最新文章
- acm之poj题库1019方法
- android错误之MediaPlayer用法的Media Player called in state *,androidmediaplayer
- s:iterator间接实现跳出循环
- IOS真机测试(用证书进行真机测试)
- 作业调度Quartz.NET
- Chrome A标签的迁移错误:【Error loading page】
- Android开发之音乐播放器的实现
- bootstrap兼容IE
- [Caffe] ubuntu14.04下使用OpenBLAS加速Caffe
- MSSQL Server语句
- UC全屏
- 宏汇编软件MASM51的使用
- Intelli IDEA 使用教程
- MSSQL 2000 错误823恢复案例
- Redis 常用命令总结
- RDMS三剑客的服务
- Python实现分发数据块到多台服务器上
- Ubuntu中VisualBox无法识别USB设备
- 搭建ssh框架项目(二)
- HDU - 5421:Victor and String (回文树,支持首尾插入新字符)
热门文章
- 多项式 Wannafly挑战赛22
- Ansible lineinfile模块详解
- Java泛型底层源码解析--ConcurrentHashMap(JDK1.7)
- [应用篇]第一篇 EL表达式入门
- jQuery中使用attribute,prop获取,设置input的checked值
- JVM加载一个类的过程
- React.js基础入门
- Training Neural Networks: Q&;A with Ian Goodfellow, Google
- windows下安装pip和easy_install
- JHipster项目启动后默认的8080主页是空白页面?