散列表(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}
浙公网安备 33010602011771号