对Java中一些不太常用的方法和相关知识点简要介绍
1.添加一组元素
Arrays.asList() 参数:数组或元素列表
Collections.addAll() 参数:Collection对象,数组, 元素列表
2. 一些不常用方法
- subList() : 求一个list的子集合
- containsAll() : 一个集合是否包括另一个集合的所有元素
- retain() : 求2个集合的交集,剔除非交集内的元素
3. 迭代器Iterator(也作为一种设计器模式)
统一了对容器的访问方式,在Collection中提供了iterator()接口产生迭代器:有方法 hasNext() next() remove()
子类ListIterator可作双向移动
4. LinkedList可作为对栈、队列或双端队列的实现
- 获取:
getFirst() / element() :列表空,抛NoSuchElementException
peek() : 列表空,返回null
- 移除:
removeFirst() / remove : 列表空,抛NoSuchElementException
poll() : 列表空,返回null
5. set集合较常用于测试元素归属性,contains()
不能存放重复元素,放入元素必须重写equals()和hashcode()方法
6. map 对象与对象的映射
- 键的set:keySet() 从接口中看出Key不能重复
- 值的Collection:values() 值可以重复
7. Collection与Iterator
- Collection:描述所有序列容器的共性的根接口,实现时必须强制实现iterator()和size()
- Iterator:为解决对容器的统一遍历,实现:index, hasNext(), next(), remove();实现它对序列的约束相对较少
8. Foreach与Iterator
- foreach:适用于:1)数组;2)Collection对象;3)实现了Iterable的类
- Iterator:Java SE5引入了包含一个能产生迭代器Iterator的iterator()方法,在Java SE5中大量的类都实现了Iterable,包括Collection不包括Map
9. 适配器方法:当有一个接口而且需要另一个接口时,可添加一个生成此接口的方法(适配一个接口出来)
10. Arrays.asList():使用底层的数组作为物理实现,不想修改原始数组,就在另一个容器中创建一个副本
总结JAVA中持有对象的方式:
- 数组:数字与对象关联;类型明确;可多维;可保存基本类型;定长
- Collection:单一元素;Map:相关联键值对。结合泛型不必类型转换;动长;不持基本类型但有自动包装机制解决
- List:同数组,数字与对象关联。ArrayList:随机访问;
- LinkedList:长于插入/删除, 对Queue和Stack提供实现
- Map:HashMap:快速访问;TreeMap:键有序;
- LinkedHashMap:插入有序,快速访问
- Set:元素唯一。 HashSet:快速访问;TreeSet:元素有序;LinkedHashSet:以插入顺序保存
简单类图结构