Java容器总结 干货
2016-01-28 16:48
288 查看
Collection 一个独立元素的序列。
1.泛型作用有不会将错误类型放到容器中。取出元素时也不必强制转型。
List 必须按照插入的顺序保存元素。
建立数字索引与对象关联。
ArrayList 随机访问元素。中间插入和移除元素较慢。
LinkedList 实现了接口List和Queue。通过较低的代价在List中间进行移除和插入操作。
各种Queue及Stack的行为可由LinkedList提供支持。
总结:如果需要进行大量的随机访问用ArrayList,经常要在表中插入和删除操作用LinkedList
Set 不能有重复的元素
HashSet 常用 最快的获取元素方式。
TreeSet 比较结果的升序来存储元素。
LinkedHashSet 按照添加的顺序来保存元素
Map 一组成组的键值对
Queue 只允许在容器的一端插入对象,并从另一端移除对象。
常用方法:
Collections.addAll();
Arrays.asList() 来初始化容器。
Collection<Integer> ci = newArrayList<Integer>(Arrays.asList(1,2,3,4));
Collections.addAll(ci,7,8,9);//自动包装
Contains()
removeAll()
retainAll() 方法行为都依赖equals()方法。
迭代器:只能向前移动
Iterator<Integer> it = ci.iterator();
while(it.hasNext()){
int i =it.next();//自动拆包
System.out.println(i);
}
ListItrerator: 1.可以双向移动。
2. 光标位置 始终位于调用 previous() 所返回的元素和调用next() 所返回的元素之间
Stack 后进先出的容器。 “后进先出的容器”
1.linkedList具有实现栈的所有功能的方法可以直接将linkedList作为栈使用
2.直接用Stack类
Queue 队列是先进先出的容器linkedList提供的方法以支持队列的行为。并实现了Queue的接口。通过将LinkedList向上转型为Queue
PriorityQueue默认的排序使用队列,也可以自己提供一个comparator来修改这个顺序。
ForEach 该接口引入新的Iterable的接口。只要是实现了Iterable的类都可以用于foreach语句中。
不推荐用过时的Vector,Hashtable,Stack
参考资料:Java编程思想第四版
1.泛型作用有不会将错误类型放到容器中。取出元素时也不必强制转型。
List 必须按照插入的顺序保存元素。
建立数字索引与对象关联。
ArrayList 随机访问元素。中间插入和移除元素较慢。
LinkedList 实现了接口List和Queue。通过较低的代价在List中间进行移除和插入操作。
各种Queue及Stack的行为可由LinkedList提供支持。
总结:如果需要进行大量的随机访问用ArrayList,经常要在表中插入和删除操作用LinkedList
Set 不能有重复的元素
HashSet 常用 最快的获取元素方式。
TreeSet 比较结果的升序来存储元素。
LinkedHashSet 按照添加的顺序来保存元素
Map 一组成组的键值对
Queue 只允许在容器的一端插入对象,并从另一端移除对象。
常用方法:
Collections.addAll();
Arrays.asList() 来初始化容器。
Collection<Integer> ci = newArrayList<Integer>(Arrays.asList(1,2,3,4));
Collections.addAll(ci,7,8,9);//自动包装
Contains()
removeAll()
retainAll() 方法行为都依赖equals()方法。
迭代器:只能向前移动
Iterator<Integer> it = ci.iterator();
while(it.hasNext()){
int i =it.next();//自动拆包
System.out.println(i);
}
ListItrerator: 1.可以双向移动。
2. 光标位置 始终位于调用 previous() 所返回的元素和调用next() 所返回的元素之间
Stack 后进先出的容器。 “后进先出的容器”
1.linkedList具有实现栈的所有功能的方法可以直接将linkedList作为栈使用
2.直接用Stack类
Queue 队列是先进先出的容器linkedList提供的方法以支持队列的行为。并实现了Queue的接口。通过将LinkedList向上转型为Queue
PriorityQueue默认的排序使用队列,也可以自己提供一个comparator来修改这个顺序。
ForEach 该接口引入新的Iterable的接口。只要是实现了Iterable的类都可以用于foreach语句中。
不推荐用过时的Vector,Hashtable,Stack
参考资料:Java编程思想第四版
相关文章推荐
- Java —— Annotation(注解)
- java如何通过socket实现服务端与客户端交互
- JAVA NIO之浅谈内存映射文件原理与DirectMemory
- 几种任务调度的 Java 实现方法与比较
- 无法自动生成R.java中的内部类代码
- JAVA获取json中的全部键值对
- 初识java 多线程
- JAVA的23中涉及模式详解
- Java并发编程笔记 死锁的产生与范例分析
- Spring
- java.io.IOException: Prepare failed.: status=0x1异常解决方法
- 实际项目中关于java常量宏替换的实际问题
- 打印九九乘法表
- springMvc integrated with springSecurity 常见问题
- 【spring mvc (三)】spring 容器
- Eclipse用户使用IntelliJ IDEA的常见问答
- eclipse项目转android studio的问题
- spring xml读取Properties文件中的加密字段
- java运算符
- Java设计模式(六)----适配器模式