java 集合知识整理

  1. java集合类图


  1. HashMap和Hashtable的区别
  HashMap HashTable
 继承方式

extends AbstractMap implements Map
extends Dictionary implements Map
线程安全
效率相对比
允许有null的键和值
判断包含的方法 containsvalue和containsKey contains

hash数组默认大小


11,


16,


hash数组增加方式


old*2+1


2的指数增加

  1. List的遍历
 1         List<String> list = new ArrayList<String>();
 2
 3         String preString = "aa";
 4         for (int j = 0; j < 100000000; j++) {
 5             list.add(preString);
 6         }
 7
 8         // 方法1(速度最快,List特有的)
 9         for (int i = 0, len = list.size(); i < len; i++) {
10             list.get(i);
11         }
12
13         // 方法2 (for each-最耗时)
14         for (String tmp : list) {
15         }
16
17         // 方法3(与方法2,4一样,适用所有实现了Iterable接口的类,常见的有:Queue,Set,Collection,List)
18         Iterator<String> iter = list.iterator();
19         while (iter.hasNext()) {
20             String str = iter.next();
21         }
22
23         // 方法4
24         for (Iterator<String> it2 = list.iterator(); it2.hasNext();) {
25             String str = it2.next();
26         }

2.map的遍历

 1         HashMap<Integer, String> map = new HashMap<>();
 2         String v = "value";
 3         for(int i=0;i<10000000;i++){
 4             map.put(i, v);
 5         }
 6
 7         //方法1,
 8         Iterator<Map.Entry<Integer, String>> it1= map.entrySet().iterator();
 9         while (it1.hasNext()) {
10             Map.Entry<Integer, String> entry =it1.next();
11             int key = entry.getKey();
12             String value = entry.getValue();
13         }
14
15         //方法2 获取map的key集合的迭代器,耗时是方法1的7倍。
16         Iterator<Integer> it2 = map.keySet().iterator();
17         while(it2.hasNext()){
18             int key = it2.next();
19             String value = map.get(key);
20         }
21     

set 和map的遍历方式类似,就不在这里啰嗦了。

时间: 2024-08-06 21:51:05

java 集合知识整理的相关文章

JAVA基础知识整理

一.首先先明白get与post的基本定义和区别: 这是两种在客户端和服务器端进行请求-响应的方法. 1get:从指定的资源请求数据. 2post:向指定的资源提交要处理的数据. get基本上用于从服务器取回数据,注意:get方法可能返回缓存数据. post可以从服务器上获取数据,不过,post方法不会缓存数据,并且常用语连同请求一起发送数据. 二. Jquery $.get()方法. $.get()方法通过Http Get发起请求,从服务器上请求数据. 语法:&.get(URL,callback

Java基础知识整理(一)

概述 公司业务需要,产品既要有.NET又需要Java,没得选择,只能业余时间学习Java,整体觉得Java也.NET还是很相似的,只是语法有差别,差别也不是很大,这就将学习Java的基础知识整理下,以便于自己的学习.作为个.NET程序猿也可以学习Java ,毕竟技多不压身,学习多也要精通. 开发工具 eclipse ,开发java类似.NET 需要装JDK类似.NET Framework. Java开发工具eclipse设置 1.设置字体:window设置: 2.设置快捷键:window--ke

Java 集合知识总结

一.Java集合主要有collection和map集合两个接口,Java中的集合都是由这两个接口派生的. Collection接口和主要实现类如下: Collection主要API: boolean add(Object obj);添加元素 boolean addAll(Collection c);把集合C的元素添加到指定集合里. void clear();清除集合所有元素,集合长度变为0 boolean contains(Object o);集合中是否包含指定元素 boolean contai

JAVA hashmap知识整理

HashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决问题.HashMap的工作原理.ArrayList与Vector的比较以及这个问题是有关Java 集合框架的最经典的问题.Hashtable是个过时的集合类,存在于Java API中很久了.在Java 4中被重写了,实现了Map接口,所以自此以后也成了Java集合框架中的一部分.Hashtable和HashMap在Java面试中相当容易被问到,甚至成为了集合

Java集合大整理

此处为整理,更详细的源码分析请查阅 JDK源码分析其他文章. 为了适应csdn的窗口大小,表格严重变形了... null 值重复 底层实现 扩容 增.删.迭代 包含 备注 HashSet 允许,just 1个 no HashMap 同HashMap [add]:调用HashMap的put方法,put的value传入伪值static final Object PRESENT = new Object(),仅仅为了保持映射关系:(所有value都是同一个对象) [remove]:调map的remov

Java并发知识整理

整理了一下前端时间学习Java并发的笔记,大约有40篇. 1. Java并发基础知识 并发基础(一) 线程介绍 并发基础(二) Thread类的API总结 并发基础(三) java线程优先级 并发基础(四) java中线程的状态 并发基础(五) 创建线程的四种方式 并发基础(六) 线程Thread类的start()和run() 并发基础(七) Thread 类的sleep().yeild().join() 并发基础(八) java线程的中断机制 并发基础(九) java线程的终止与中断 并发基础

JAVA基础知识整理 常用框架

JAVA反射---相关资料: 1.Java反射机制可以让我们在编译期(Compile Time)之外的运行期(Runtime)检查类,接口,变量以及方法的信息 2.反射还可以让我们在运行期实例化对象,调用方法,通过调用get/set方法获取变量的值. 参考框架:Butterfly Persistence 构建 这里搜集了用来构建应用程序的工具. Apache Maven:Maven使用声明进行构建并进行依赖管理,偏向于使用约定而不是配置进行构建.Maven优于Apache Ant.后者采用了一种

Java集合知识总结详解

两大体系:Collection,Map 一.Collection: List 接口 : List:里面对象全部是有序的(通过三种方法来遍历) ArrayList,LinkedList,Vertor ArrayList:本质上 ArrayList 里维护的就是动态可变长度的数组. 常用方法:  增:add(4) 对象 位置+对象  集合 集合+位置.  删:remove(2)下标删对象,直接删对象.  改:set(1) 下标  对象.  查:get() 下标得对象, indexOf()对象得下标.

Java 集合知识总结(二)

Set集合 Set和Collection基本相同,Set不允许有重复元素,集合内的元素是无序的. 1) HashSet类 特点:不能保证元素的排列顺序.不是同步的,多线程操作时需要通过代码保证其同步性.集合元素值可以为null.HashSet添加原始的时候根据元素的hashCode值来计算 它的存储位置,方便快速该元素.(hash算法的功能是保证快速查找被检索的对象,根据元素的hashcode值计算该元素的存储位置,从而快速定位元素位置.) HashSet判断元素是否相等通过equals()方法