JAVA学习笔记整理六(类集框架)
来源:互联网 发布:税务查账软件 编辑:程序博客网 时间:2024/05/17 18:29
类集框架接口的具体特点
接口的继承关系
集合框架中的实现类
Collection接口
1. 此接口是单值存放的最大父类接口,可以向其中保存多个单值(单个的对象)数据,一般不直接使用,因为表示的操作意义不明确。
2. 使用了泛型的定义,在操作时必须指定具体的操作类型,以保证类集操作的安全性,避免发生ClassCastException异常
List接口
1. ArrayList:
2. LinkedList:
3. 区别:
1) 我们可以将ArrayList看作是能够自动增长容量的数组,可以直接利用ArrayList的toArray()返回一个数组
2) ArrayList底层采用数组完成,而LinkedList则是以一般的双向链表(double-linked list)完成,其内每个对象除了数据本身外,还有两个引用,分别指向前一个元素和后一个元素
3) LinkedList在实现List接口的同时,还实现了Queue接口,采用“先进先出”的方式操作
4) 如果我们经常在List的开始处增加元素,或者在List中进行插入和删除操作,我们应该使用LinkedList,否则的话,使用ArrayList将更加快速
Set接口
Set接口不能增加重复元素,实例无法像List接口那样可以进行双向输出。
1. HashSet:散列的存放:不能存放重复元素,并且采用散列的存储方式,无序排列
2. TreeSet:有序的存放:不能存放重复元素,有序排列,可以自定义类进行去重复并按照自己规定的顺序进行排序
3. TreeSet实现了SorteSet接口(是 SorteMap 的 set 对应接口)集合的输出
1. 迭代输出 Iterator(最常使用):是专门的迭代输出接口,由前向后单向输出。所谓的迭代输出接口就是将元素一个个进行判断,判断其是否有内容,如果有内容则把内容取走
2. 双向迭代输出Listlterator:可以实现由后向前或者由前向后的双向输出(只有List接口才可以实现),若想要后向前输出,必须先完成由前向后的输出
3. Foreach:增强型循环Map:
1. Map.Entry接口简介:是Map内部定义的一个接口,专门用来保存key→value的内容(实际上是将key→value的数据保存在Map.Entry的实例后,再在Map集合中插入一个个的Map.Entry的实例化对象)
2. HashMap:无序存放,新的操作类,key不允许重复
3. HashTable:无序存放,旧的操作类,key不允许重复(除了Hashtable可以同步和不允许使用null之外, Hashtable与HashMap类大致相同)
5. WeekHashMap:弱引用,之前的子类都是强引用保存,即里面的内容不管是否使用都始终在集合里,而WeekHashMap则当利用“System.gc()”进行垃圾收集时,集合会自动清理暂时不用的数据
6. Key可以重复的Map集合:IdentityHashMap
只要key地址不是相等的,就可以添加进去而不被覆盖
Map接口使用的注意事项
1. 不能直接使用迭代输出Map中的全部内容(Map一般很少直接输出,只是作为查询使用,而Collection接口一般用来传递内容和输出)
1) 使用Iterator输出(最标准的操作流程)
1> 将Map的实例通过entrySet方法变为Set接口对象
2> 通过Set接口实例化为Iterator实例化
3> 通过Iterator迭代输出,每个内容都是Map.Entry的对象
4> 通过Map.Entry进行key→value的分离
2) Foreach输出(将Map集合变为Set集合进行输出)
2. 直接使用非系统的类作为key
如果使用的自定义的类表示Map中的value,则按照格式完成即可,但是,如果要使用一个自定义的对象表示Map中的key,则对象所在的类中一定要覆写equals()和hashCode()方法,否则无法找到对应的value(类似于treeSet处,需要一一进行比较)
其他集合类
1. Stack类:栈,先进后出。
2. 属性类:Properties
- JAVA学习笔记整理六(类集框架)
- Android入门学习笔记整理(六)
- JavaScript学习笔记整理(六)
- 笔记整理(java基础六-----异常)
- Java学习笔记(六)集合类
- Mina框架学习笔记(六)
- Mina框架学习笔记(六)
- Struts2学习笔记(六)校验框架
- Mina框架学习笔记(六)
- java学习笔记(六)
- Java学习笔记(六)
- Java学习笔记(六)
- Java学习笔记(六)
- Java学习笔记(六)
- java学习笔记(六)
- java学习笔记(六)
- Java知识整理(六)之SE.集合框架
- Java学习笔记六
- 大象Thinking in UML读书笔记☞ 第三章
- WebView处理三方登录问题
- 《挑战程序设计竞赛》 读后感
- STL运用的C++技术(2)——模板特化
- C/C++中static关键字详解
- JAVA学习笔记整理六(类集框架)
- 练习3-O
- STL运用的C++技术(3)——模板实参推断
- docker相关
- STL运用的C++技术(4)——重载函数
- "House Robber" and "House Robber III"
- 【Android基础】二、网络编程
- 利用powerdesigner导出word文档即sql转pdm模型
- 2016-5-30 代码Review问题总结