注释:
1.Map以key-value键值对的方式进行存储。
2.key是Set类型,唯一性;value是Collection类型,可不唯一。
3.Map多用于封装。
4.HashMap为其实现类。
常用功能:
1.添加删除元素
@Test
public void test() {
Map map=new HashMap();
map.put(123,123);
map.put(null,null);
map.put("abc","abc");
//HashMap():key用set存储,不可重复,value用collection存储,可以重复
//如果key出现重复,会覆盖上一个记录
map.put(new String("aaa"),"aaa");
map.put(new String("aaa"),"bbb");
//equals 方法比较,添加bbb,因为String类,重写了quals 方法,所以覆盖上一条
map.put(new Student("张三"),"张三");
map.put(new Student("张三"),"李四");
//这里添加的是Student对象,这里比较的是地址,所以不会产生覆盖
System.out.println(map);
map.remove(123);
//删除,根据键来查找进行删除
System.out.println(map);
}
添加使用的对象类省略…
2.遍历元素:获取key,value,key-value
@Test
public void test1() {
Map map=new HashMap();
map.put("1001","张三");
map.put("1002","李四");
map.put("1003","王五");
map.put("1004","赵柳");
//Set keySet()方法获取map里面的key,返回Set类型
System.out.println("======获取key======");
Set keys=map.keySet();//无序性
for (Object s : keys) {
//Object所有类型的父类
System.out.println(s);
}
System.out.println("======获取value======");
//values():返回map中所有的value值
Collection values=map.values();
//返回Collection类型,Collection是list的父接口,若要返回list要进行强制类型转换
for (Object value : values) {
//Object所有类型
System.out.println(value);
}
//要是使用一个遍历实现map循环,输出格式key--value
System.out.println("======遍历map的第一种方式======");
Set set=map.keySet();
//根据key获取map
for (Object o : set) {
//Object所有类型
System.out.println(o+":"+map.get(o));
//根据key获取value
}
System.out.println("======遍历map的第 二种方式======");
//(Set)Entry=(Set)key+(Collection)value
//键值对整个是Set类型
//Collect提供共用的(父)接口,set是其子接口
//entrySet():获取元素
Set set1=map.entrySet();
//根据key获取map
for (Object o : set1) {//o代表每一个entry
//把o转成entry,因为object没有get方法,必须强制转换
Entry entry=(Entry)o;
System.out.println(entry.getKey()+":"+entry.getValue());
}
}
3.map泛型的使用
@Test
//使用map泛型来限制集合的类型,<>:保证数据安全性(若添加的不符合则出错)。
public void test2(){
Map<String, Integer> map=new HashMap<String, Integer>();
//集合中只能包含对象,没有类型,所以使用包装类
map.put("1001", 1);
map.put("1002", 2);
map.put("1003", 3);
map.put("1004", 4);
Set<Entry<String, Integer>>set=map.entrySet();
for (Entry<String, Integer> entry : set) {
System.out.println(entry.getKey()+":"+entry.getValue());
}
}