哈希表的常规操作和遍历
Java的SE系列 第15天上午
package mapDemo;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
/**
* java.util.Map又叫查找表
* Map体现的结构是一个多行两列的表格
*
* 左列成为key,右列称为value
* Map可以通过key获取对应的value,所以我们经常将要查询数据作为value,
* 查询的条件作为key将他们成对的保存到Map中
*
* Map是一个接口,常用的实现类:java.util.HashMap
*
* HashMap又称为哈希表,散列表,使用散列表算法实现的Map,
* 是当今查询速度最快的数据结构
* @author Administrator
*/
public class MapDemo1 {
public static void main(String[] args) {
/*
* Map需要分别指定key与value的类型
* 若加载了HashMap还报错的话,将Java Complier编译器改为1.8版本
*/
Map<String,Integer> map = new HashMap<>();
// HashMap<String, Integer> map = new HashMap<>();
//利用多态的思想向上造型
/*
* 1:赋值
* V put(K k,V v)
* 将给定的key-value对保存到Map中,Map有一个要求:
* key不允许重复。因此使用已有的key保存value时,put方法
* 会将该key原来的value返回,并用新value替换。
*/
map.put("语文", 99);
map.put("数学", 100);
map.put("英语", 60);
System.out.println(map);
//使用已有的key则是替换value操作
map.put("语文",59);
System.out.println(map);
/*
* 2:取值
* V get(Object key)
* 根据给定的key获取对应的value,若给定的
* key在Map中不存在,则返回值为null;
*/
Integer value = map.get("历史");
System.out.println(value);
int size = map.size();
System.out.println(size);
/*
* 3:删除
* V remove(Object key)
* 删除当前Map中给定的key所对应的key所对应的这组键值对
* 返回值为这个key对应的value
*/
Integer old = map.remove("语文");
System.out.println(map);
System.out.println(old);
/*
* 4:判断
* 判断当前Map是否包含给定的key或value
*/
boolean ck = map.containsKey("数学");
boolean cv = map.containsValue(100);
System.out.println(ck);
System.out.println(cv);
//5:遍历
System.out.println("-----遍历key-----");
/*
* 遍历key
* Set keyset()
* 将当前Map中所有key以一个Set集合形式返回
*/
Set<String> keyset = map.keySet();
for(String key :keyset) {
System.out.println("key值:"+key);
}
System.out.println("-----遍历键值对-----");
/*
* 遍历每组键值对
* Set entrySet()
* 将当前Map中每组键值对以若干Entry实例并存入Set集合进行返回
* java.util.Map.Entry
*/
Set<Entry<String, Integer>> entrySet = map.entrySet();
System.out.println("key:value");
for (Entry<String, Integer> e : entrySet) {
String k = e.getKey();
Integer v = e.getValue();
System.out.println(k+":"+v);
}
System.out.println("-----遍历value-----");
/*
* Collection values()
* 将当前Map中所有的value以一个集合形式返回
*/
Collection<Integer> values = map.values();
for (Integer i : values) {
System.out.println("value:"+i);
}
}
}