java集合知识整理

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

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的遍历1List<String> list =newArrayList<String>();23StringPReString = "aa";4for(intj = 0; j < 100000000; j++) {5list.add(preString);6}78//方法1(速度最快,List特有的)9for(inti = 0, len = list.size(); i < len; i++) {10list.get(i);11}1213//方法2 (for each-最耗时)14for(String tmp : list) {15}1617//方法3(与方法2,4一样,适用所有实现了Iterable接口的类,常见的有:Queue,Set,Collection,List)18Iterator<String> iter =list.iterator();19while(iter.hasNext()) {20String str =iter.next();21}2223//方法424for(Iterator<String> it2 =list.iterator(); it2.hasNext();) {25String str =it2.next();26}

2.map的遍历

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

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

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航