import java.util.HashMap;
public class HashTableUse {
//java是HashMap,python是字典,是键值对,是key-value
//key通过哈希函数,确定一块内存地址,存放key/value
//哈希碰撞:不同key,通过哈希函数得到同一个内存地址,通过链表的方法,将后一个key/value链在上一个key/value后面,是另一块内存地址,通过next指针链接
public static void main(String[] args) {
//1、用数组创建哈希表
System.out.println("1、创建哈希表");
String[] hashTable = new String[4];
//1、用HashMap创建哈希表
HashMap<Integer, String> map = new HashMap<>();
//2、增加元素,时间复杂度O(1)
System.out.println("2、增加元素");
hashTable[1]="hanmeiemei";
hashTable[2]="lihua";
hashTable[3]="siyangyuan";
for (int i = 0; i < hashTable.length; i++) {
System.out.println(hashTable[i]);
}
map.put(1,"hanmeimei");
map.put(2,"lihua");
map.put(3,"siyangyuan");
System.out.println(map);
//3、更新元素
System.out.println("3、更新元素");
hashTable[1]="bishi";
for (int i = 0; i < hashTable.length; i++) {
System.out.println(hashTable[i]);
}
map.put(1,"bishi");
System.out.println(map);
//4、删除元素
System.out.println("4、删除元素");
hashTable[1]="";
for (int i = 0; i < hashTable.length; i++) {
System.out.println(hashTable[i]);
}
map.remove(1);//通过键移除
System.out.println(map);
//5、获取元素
System.out.println("5、获取元素");
String temp = hashTable[3];
System.out.println(temp);
map.get(3);//通过键获取
System.out.println(map.get(3));
//6、检查元素是否存在
System.out.println("6、检查元素是否存在");
System.out.println(map.containsKey(3));
System.out.println(map.containsValue("hanmeimei"));
//7、长度以及是否还有元素
System.out.println("长度以及是否还有元素");
System.out.println(map.size());
System.out.println(map.isEmpty());
}
}
运行结果: