[size=large]在Set中有HashSet,LinkdedHashSet,TreeSet具体类
在Map中有HashMap,LinkedHashMap,TreeMap具体类
而在List中却是ArrayList,LinkedList具体类,
小弟愚笨,为什么List在设计的时候,不设计出一个HashList这样的类呢(看上去显得更统一)?[/size]
Hash是通过某个函数f,使得
存储位置=f(关键字)
我们可以通过查找关键字不需要比较就可获得需要的记录的存储位置。
List需要表示每个数据元素ai与其后继数据元素ai+1之间的逻辑关系。
可以看出:
Hash描述的是关键字与存储位置之间的关系,访问效率高
List描述的是元素与元素间的关系,需要遍历
它们的设计目标明显不一样,所以才不能设计HashList吧
个人的拙见...
List翻译过来就是列,是一个一个一次排队的顺序访问的结构,通过数组和链表可以实现这种顺序访问的结构,也就是ArrayList,LinkedList
[url]http://www.blogjava.net/dongbule/archive/2011/01/16/343063.html[/url]
map 和set都是无序的集合,
set可以通过hash函数、也就是hashCode()方法来获取哈希码,定位该元素位于整个set的哪个位置
[url]http://www.blogjava.net/dongbule/archive/2011/01/06/342446.html[/url]
map则是通过key的hasCode()方法来定位集合中元素。
[url]http://alwaysnew.iteye.com/blog/1107011[/url]
HashList要如何设计呢?难道不是等同于HashMap
一句话,list是有序的序列。可以按照它添加的顺序读出来。