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程序中一句连续的字符串不能分开在两行书写, ...
随机推荐
- ARCGIS如何进行可视域分析
可视域分析在不同的领域有着广泛的应用,如火灾监控点的设定,观察哨所的设定等等.军事领域是可视域分析技术应用最广的领域.例如为了设计巡航导弹的航线,就必须对发射点到目标的地形进行分析,包括地形特征优劣分 ...
- 使用Maven来写j2ee项目
第一步:使用Maven创建web项目 是不是很简单? 第二步 问题 很多人,创建好后是没有src/main/java的源文件的,解决办法: 1.直接new ResourceFloder,src/mai ...
- web学习笔记
最近把web方面的学习笔记都放在了github的一个仓库里,这是链接:https://github.com/williamking/web-studying-note
- JAVA-系统-【3】-java应用连接oracle正常,但是网页却报错java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
这是因为jar包已经导入了项目的应用部分,网页的lib去没有导入. 导入以后还要刷新项目,最好重启tomcat,就解决了..
- 端到端 vs 点到点
比较(转自 百度经验) 端到端与点到点是针对网络中传输的两端设备间的关系而言的.端到端传输指的是在数据传输前,经过各种各样的交换设备,在两端设备问建立一条链路,就僚它们是直接相连的一样,链路建立后,发 ...
- php工作笔记6-手机端适应缩放
1.静态页面
- SQL、Linq、lamda表达式 同一功能不同写法
一.SQL.Linq.lamda表达式 同一功能不同写法 SQL LINQ Lambda SELECT * FROM HumanResources.Employee from e in Employe ...
- linux 学习1
这里主要是听讲的一些东西的总结, thanks to lamp brother ____安装虚拟机 vmware 8.0.4, 因为高版本占用空间大,没必要 cent OS 6.3 linux 版本 ...
- wkhtmltopdf中文显示空白或者乱码方框
中文乱码或者空白解决方法 如果wkhtmltopdf中文显示空白或者乱码方框 打开windows c:\Windows\fonts\simsun.ttc拷贝到linux服务器/usr/share/fo ...
- ffmpeg 音频转换: use ffmpeg convert the audio from stereo to mono without changing the video part
To convert the audio from stereo to mono without changing the video part, you can use FFmpeg: ffmpeg ...