聊聊在私立文理读cs的两年感受

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
E轮2.5亿美元融资
K12教育独角兽一起作业
北京-诚聘人工智能/教育/大数据岗
坐标湾区
Games Startup
招聘游戏开发工程师
游戏初创公司招聘工程师、UIUX Designer和游戏策划
码农求职神器Triplebyte:
不用海投
内推多家公司面试
把贵司招聘信息放这里
查看: 939|回复: 3
收起左侧

[学Java/C#] HashTable vs. HashMap vs. HashSet对比总结【JAVA】

[复制链接] |试试Instant~ |关注本帖
CSTeen 发表于 2015-10-21 02:09:09 | 显示全部楼层 |阅读模式

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?Sign Up 注册获取更多干货

x
首先对比一下hashtable 跟hashmap,hashmap是新的hashtable,可以作为hashtable的替代品。其主要区别是,hashtable是synchronized的,而hashmap则是默认非同步的,这样,在多线程的情况下hashtable可以直接使用,而hashmap则需要通过一个静态声明解决:Map.Collections.SynchronizedMap(Map m), 这个方法就会返回一个同步的hashmap(这点跟vector与arraylist的区别有点像)。但同步数据结构需要更多系统资源,所以一般情况下就选择hashmap即可。
其次,hashmap可以用null值作为其value或key,但主要在判断是否存在null的key时不能用get,因为不存在时也会返回null,所以要用containsKey()。hashtable 则不允许null值。另外hashtable的hash数组大小默认为11,且增大方式为 N*2 + 1。hashmap的大小默认为16,且固定为2的指数。

然后是hashset与hashmap的区别,hashset只需要一个对象作为元素,内部实现还是hashmap,类似:
public boolean (object o) {
    return map.put(o, PRESENT) == null;
}


基本的就这些,欢迎指正补充
——————————————————————————方法总结————————————————————————————————
常用方法:

HashMap

clear();
containsKey(), containsValue();
get();    // get() == containsValue()
isEmpty();
remove();
put();
size();
entrySet(), keySet();

*********************************************************************
HashTable

clear();
contains(), containsKey();
get();
hashCode();
entrySet(), keySet();
isEmpty();
merge();
put();
remove();
replace();
size();
toString();

*********************************************************************
HashSet()

add();
clear();
contains();
isEmpty();
iterator();
remove();
size();
________________________________________________________________________________________________________

评分

3

查看全部评分

小鱼仔串串烧 发表于 2015-10-26 19:11:30 | 显示全部楼层
非常感谢楼主分享!
回复 支持 反对

使用道具 举报

全球28万学生4.7分推荐
cwwmoment 发表于 2015-10-27 10:54:59 | 显示全部楼层
可补充下hashmap,hashtable,hashset的内部构造,hashcode
回复 支持 反对

使用道具 举报

lrn0304 发表于 2015-10-29 05:21:22 | 显示全部楼层
hash map 是 enumberator, hash table 是 iterator. hash table 是基于 java 1.2的 table 接口, 但是 map 是map 接口.
回复 支持 反对

使用道具 举报

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2018-5-21 13:44

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表