散列表(Hash)

散列表ADT即Hash Table

是一种以常数平均时间进行插入、删除和查找的技术。

HashMap、HashTable、HashSet,所以涉及到使用Hash值进行优化存储的地方,都会用到HashCode。HashCode是Key,这种计算为提高计算的性能。想想看,一般来说,数组算是比较快的集合类了吧,直接用index定位元素,简直就是O(1)的级别。但是添加元素就不这么乐观了。但是使用hash类的集合,添加元素,移动的元素少,只影响一小块,并且查找元素,由于hash值已经进行了定位分组,所以也会大大缩小涉及面,快速定位。

 1 public static void main(String [] args) {
 2         HashSet <Integer> set = new HashSet<Integer>();
 3         set.add(4);
 4         set.add(2);
 5         set.add(5);
 6         System.out.println(set);
 7         
 8         HashMap<String, Integer> map = new HashMap<String, Integer>();
 9         map.put("zhangsan", 19);
10         map.put("lisi", 76);
11         map.put("wangwu", 54);
12         System.out.println(map);
13     }

打印结果如下:

[2, 4, 5]
{wangwu=54, lisi=76, zhangsan=19}

 

posted on 2015-07-21 14:32  pokemonzj  阅读(223)  评论(0)    收藏  举报

导航