/*
总结:常用方法
添加:put(Object key,Object value)
删除:remove(Object key)
修改:put(Object key,Object value)
查询:get(Object key)
长度:size()
遍历:keySet()/values()/entrySet()
*/
import org.junit.Test;
import java.util.*;
public class MapTest {
/*
元视图操作的方法:
Set keySet():返回所有key构成的Set集合
Collection values():返回所有value构成的Collection集合
Set entrySet():返回所有key-value对构成的Set集合
*/
@Test
public void test4(){
Map map = new HashMap();
map.put("AA", 123);
map.put(45, 123);
map.put("BB", 456);
//遍历所有的key集:keySet()
Set set = map.keySet();
//迭代器遍历
Iterator iterator = set.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
System.out.println();
//遍历所有的value对象:values
Collection values = map.values();
for(Object obj : values){
System.out.println(obj);
}
System.out.println();
//遍历所有的key-value
//方式一:entrySet():
Set entrySet = map.entrySet();
Iterator iterator1 = entrySet.iterator();
while(iterator1.hasNext()){
Object obj = iterator1.next();
//entrySet集合中的元素都是entry
Map.Entry entry = (Map.Entry) obj;
System.out.println(entry.getKey() + "---" + entry.getValue());
}
System.out.println();
//方式二:
Set set2 = map.keySet();
Iterator iterator2 = set2.iterator();
while(iterator2.hasNext()) {
Object key = iterator2.next();
Object value = map.get(key);
System.out.println(key + "===" + value);
}
}
/*
元素查询的操作:
Object get(Object key):获取指定key对应的value
boolean containsKey(Object key):是否包含指定的key
boolean containsValue(Object key):是否包含指定的value
int size():返回map中key-value对个数
boolean isEmpty():判断当前map是否为空
boolean equals(Object obj):判断当前map和参数对象obj是否相等
*/
@Test
public void test3() {
Map map = new HashMap();
//添加
map.put("AA", 123);
map.put(45, 123);
map.put("BB", 456);
//Object get(Object key)
System.out.println(map.get("45"));
//containsKey(Object key)
boolean isExit = map.containsKey("BB");
System.out.println(isExit);
isExit = map.containsValue(123);
System.out.println(isExit);
System.out.println(map.size());
System.out.println(map.isEmpty());
map.clear();
System.out.println(map.isEmpty());
System.out.println("=====================");
Map map1 = new HashMap();
map.put("AA", 123);
map.put(45, 123);
map.put("BB", 456);
System.out.println(map.equals(map1));
}
/*
添加、删除、修改操作:
Object put(Object key,Object value):将制定key-value添加到(或修改)当前map对象中
void purAll(Map m):将m中的所有key-value对存放到当前map中
Object remove(Object key):移除制定key的key-value对,并且返回value
void clear(): 清空当前map中的所有数据
*/
@Test
public void test(){
Map map = new HashMap();
//添加
map.put("AA",123);
map.put(456,123);
map.put("BB",123);
map.put("AA",186);
//修改
map.put("CC",789);
System.out.println(map);
Map map1 = new HashMap();
map1.put("DD",456);
map1.put("BB",555);
map.putAll(map1);
System.out.println(map);
//remove.(Object key)
Object value = map.remove("BB");
System.out.println(value);
System.out.println(map);
//clear()情况
map.clear();//与 map=null不同
System.out.println(map.size());
}
@Test
public void test2(){
Map map = new HashMap();
map = new LinkedHashMap();
map.put(123,"AA");
map.put(345,"BB");
map.put(12,"CC");
System.out.println(map);
}
@Test
public void test1(){
Map map = new HashMap();
// map = new Hashtable();
map.put(null,123);
map.put(null, null);
map.put("long","lalala");
System.out.println(map.get(null));
System.out.println(map.get("long"));
}
}
运行结果