有一道面试题:如何用ArrayList实现自己的HashSet?

文心雕码 发布于 2014/07/26 12:48
阅读 671
收藏 0

How to implement your own HashSet by using ArrayList?大家觉得怎么实现比较好呢?

加载中
1
优雅先生
优雅先生

我说下我的看法,如有不当,欢迎指出。这里不考虑JDK里面HashSet实现(JDK里,HashSet借助HashMap实现,是一个特殊的HashMap,所有Value都是一个Dummy Object),只单纯从数据结构角度考虑。主要关注HashSet和ArrayList的异同。ArrayList是基于数组实现的List,添加元素时直接append到链表末尾,元素可以重复。HashSet的元素不能重复,而判断是否重复是根据元素的Hash值和equals比较。所以借助ArrayList实现HashSet,只需要重写ArrayList与HashSet不同的方法,比如add,而相同的方法可以直接沿用。


0
凤城回忆
凤城回忆
参照HashMap和HashSet的源码,将HashMap里的table数据替换成ArrayList即可。
返回顶部
顶部