Map的常用方法测试
package com.neu.Collection;
import com.sun.activation.registries.MailcapParseException;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
/**
* @author 王永利
* @date 2021/03/26
*
* Map方法的测试(主要是HashMap)
*/
public class mapTest {
//1. 增、删、改
public void test1() {
//增时key是不可重复的,value可重复 输出格式为 key=value
HashMap map = new HashMap();
map.put("AA", 123);
map.put("BB", 456);
map.put("wyl", 100);
map.put("zy", 100);
System.out.println(map);
//删,删时输入参数是key,且remove方法有返回值,返回该key对应的value;当要移除的key不存在时,返回的value为null,因为HashMap中可以存放null值
Object value = map.remove("AA");
System.out.println(value);
System.out.println(map.remove("CC"));//不存在返回null
System.out.println(map);
//改,也是增。因为在map中,若添加key时发现有重复,那么则用新的value代替以前的value,而在set中,若出现重复则添加失败。
map.put("BB", 123);
System.out.println(map);
}
// 2. 元素查询的方法
public void test2(){
Map map = new HashMap();
map.put("AA", 123);
map.put("BB", 456);
map.put("wyl", 100);
map.put("zy", 100);
//通过key,查询对应的value======> get() ***没有通过value查询对应的key的方法,因为key唯一不重复,而value可重复
System.out.println(map.get("AA"));
//查询map中是否包含某key或者某value的元素,返回true或false
boolean flag1 = map.containsKey("AA");
boolean flag2 = map.containsValue(100);
System.out.println(flag1);
System.out.println(flag2);
//判断集合中元素个数用size();判断字符串length(),判断数组长度length;
System.out.println(map.size());
//判断集合是否为空
System.out.println(map.isEmpty());
//判断当前map和参数对象obj是否相等 boolean equals(Object obj)
}
//3. 元视图的操作,遍历map的方法
public void test3(){
Map map = new HashMap();
map.put("AA", 123);
map.put("BB", 456);
map.put("wyl", 100);
map.put("zy", 100);
//遍历所有的key集:keySet() ,构成Set集合
Set set = map.keySet();
Iterator iterator = set.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
//遍历所有的value集:values(), 构成Collection集合
Collection values = map.values();
for(Object obj: values){//利用增强for循环
System.out.println(obj);
}
//遍历所有的key-value:
// 方法一:entrySet()
Set entrySet = map.entrySet();
Iterator iterator1 = entrySet.iterator();
while(iterator1.hasNext()){
Object obj = iterator1.next();
Map.Entry entry = (Map.Entry)obj;//强转
System.out.println(entry.getKey() + "----->" + entry.getValue());
}
//方式二:
Set keySet = map.keySet();
for(Object key: keySet){
Object value = map.get(key);
System.out.println(key + "=========>" + value);
}
}
public static void main(String[] args){
mapTest maptest = new mapTest();
maptest.test1();
maptest.test2();
maptest.test3();
}
}