java 集合知识整理
- java集合类图

- HashMap和Hashtable的区别
| HashMap | HashTable | |
| 继承方式 |
extends AbstractMap implements Map |
extends Dictionary implements Map |
| 线程安全 | 否 | 是(方法都是synchronized修饰) |
| 效率相对比 | 高 | 低 |
| 允许有null的键和值 | 是 | 否 |
| 判断包含的方法 | containsvalue和containsKey | contains |
|
hash数组默认大小 |
11 |
16 |
|
hash数组增加方式 |
old*2+1 |
2的指数增加 |
- List的遍历
List<String> list = new ArrayList<String>();
String preString = "aa";
for (int j = 0; j < 100000000; j++) {
list.add(preString);
}
// 方法1(速度最快,List特有的)
for (int i = 0, len = list.size(); i < len; i++) {
list.get(i);
}
// 方法2 (for each-最耗时)
for (String tmp : list) {
}
// 方法3(与方法2,4一样,适用所有实现了Iterable接口的类,常见的有:Queue,Set,Collection,List)
Iterator<String> iter = list.iterator();
while (iter.hasNext()) {
String str = iter.next();
}
// 方法4
for (Iterator<String> it2 = list.iterator(); it2.hasNext();) {
String str = it2.next();
}
2.map的遍历
HashMap<Integer, String> map = new HashMap<>();
String v = "value";
for(int i=0;i<10000000;i++){
map.put(i, v);
} //方法1,
Iterator<Map.Entry<Integer, String>> it1= map.entrySet().iterator();
while (it1.hasNext()) {
Map.Entry<Integer, String> entry =it1.next();
int key = entry.getKey();
String value = entry.getValue();
} //方法2 获取map的key集合的迭代器,耗时是方法1的7倍。
Iterator<Integer> it2 = map.keySet().iterator();
while(it2.hasNext()){
int key = it2.next();
String value = map.get(key);
}
java 集合知识整理的更多相关文章
- 2019-9-16 java上课知识整理总结(动手动脑,课后实验)
java上课知识整理总结(动手动脑,课后实验) 一,课堂测试 1,题目:课堂测试:像二柱子那样,花二十分钟写一个能自动生成30道小学四则运算题目的 “软件” 要求:(1)题目避免重复: (2)可定制( ...
- 《面试补习》- Java集合知识梳理
一.ArrayList ArrayList 底层数据结构为 动态数组 ,所以我们可以将之称为数组队列. ArrayList 的依赖关系: public class ArrayList<E> ...
- JAVA hashmap知识整理
HashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决问题.HashMap的工作原理.ArrayList与Vect ...
- java集合框架整理
一.总体框架 Java集合是java提供的工具包,包含了常用的数据结构:集合.链表.队列.栈.数组.映射等.Java集合工具包位置是java.util.* .Java集合主要可以划分为4个部分:Lis ...
- Java集合知识总结
集合概述 集合:集合是Java中提供的一种容器,可以用来存储多个数据. 集合和数组的区别: (1)数组长度的是固定的,集合的长度是可变的. (2)数组中存储的都是同一类型的元素.集合存储的都是对象,对 ...
- java基础知识整理
java基础入门知识(转载请注明出处.) 1.JVM.JRE和JDK的区别. (1)JVM(Java Virtual Machine):java虚拟机,用于保证java跨平台的特性,java语言是跨平 ...
- Java并发知识整理
整理了一下前段时间学习Java并发的笔记,大约有40篇. 1. Java并发基础知识 并发基础(一) 线程介绍 并发基础(二) Thread类的API总结 并发基础(三) java线程优先级 并发基础 ...
- java基础知识整理:
一, Java中的继承: 1. final关键字(最终的,不可修改的不可变化的,可以修饰类,方法,变量等): 如果final修饰类的话,这个类不可以被继承: 如果修饰方法的话,这个方法不可以被子类覆盖 ...
- Java基础知识整理(一)
Java开发环境JDK(Java编辑器.Java运行工具(JRE作用).Java文档生成工具.Java打包工具) 1.Java是严格区分大小写的.2.Java程序中一句连续的字符串不能分开在两行书写, ...
随机推荐
- O2O迈进智能时代 百度构建“服务生态”
经历过山车式资本市场后,O2O领域正努力摆脱“低门槛”,或将迎来技术创新之争.在刚刚落幕的百度世界大会上,百度副总裁.百度糯米总经理曾良宣布:将以百度糯米.手机百度和百度地图为核心构建百度服务生态.在 ...
- CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files 解决方案
1 设置c:windows\temp 目录访问权限 temp--> 属性-->安全-- > 添加network service -->并赋予其权限为 读 和 写--> 确 ...
- thinkPHP--CURD操作
1.数据创建 2.数据写入 3.数据读取 4.数据更新 5.数据删除 一.数据创建 在数据库添加等操作之前,我们首先需要对数据进行创建.何为数据创建,就是接受提 交过来的数据,比如表单提交的 POST ...
- 从excel文件中获取数据(2)
本方法引用 Aspose.Cells.dll,ICSharpCode.SharpZipLib.dll ,NPOI.dll,NPOI.OOXML.dll,NPOI.OpenXml4Net.dll,NPO ...
- make[2]: *** No rule to make target `/root/.pyenv/versions/anaconda3-2.4.0/lib/libpython3.5m.so', needed by `evaluation.so'. Stop.
当出现No rule to make target ,肯定是Makefile有问题. 有的makefile是脚本生成的,你得看脚本的配置文件对不对. 我的是这个脚本生成的.发现是Pythondir的配 ...
- Res_Orders_01需求分析
一.背景及好处 为了提高餐厅的运营效率,增强餐厅各部门间的配合,减少顾客到店后的点餐.等餐及结算过程消耗的时间,降低服务员点餐失误率,进一步提高餐厅管理人员对菜品.资金的管理以及更好的掌握餐厅的全局运 ...
- 转载:Scalers:要持续行动,不要自我感动
转载自微信公众号:http://mp.weixin.qq.com/s?__biz=MzA4MjIyNDYzMQ==&mid=2650846277&idx=1&sn=5d832a ...
- 如何写一个简单的http服务器
最近几天用C++写了一个简单的HTTP服务器,作为学习网络编程和Linux环境编程的练手项目,这篇文章记录我在写一个HTTP服务器过程中遇到的问题和学习到的知识. 服务器的源代码放在Github. H ...
- eclipse的快捷键(写给eclipse新手)
Eclipse常用的快捷键 1.常用的快捷键 Alt+/:常用于补全单词.方法,以及内容辅助,可以省很多事情 Ctrl+1:用于全局,快速修正 Ctrl+D 删除整行 Ctrl+F 用于全局 , ...
- We have a problem with promises
原文地址:http://fex.baidu.com/blog/2015/07/we-have-a-problem-with-promises/ 用Javascript的小伙伴们,是时候承认了,关于 p ...