HashMap:
1.存储键值对(key,value),
2.允许null值和null键
3.key值不可以重复
Map可以看做3部分:1.key是一个集合2.value是一个集合3.key和value是一个集合.
一些代码:
/**
*
- @author dch
*/
//HashMap
public class TestHashMap {
public static void main(String[] args) {
Map map = new HashMap();
//存储数据
map.put("1001", "张三");
map.put("美国", "US");
map.put("中国", "CN");
map.put("1003", "李四");
//map.put("1003", "王五");//key如果相同,覆盖了原始数据
map.put("1004", "李四");//value可以相同
//获取map中的元素,获取value
map.get("1003");
System.out.println(map.get("1003"));
System.out.println(map.get("1004"));
//获取 key ,value的集合
Set entrySet = map.entrySet();//将key,和value封装到entrySet里面
for (Object obj : entrySet) {
}
//遍历获取所有的key
Set sets = map.keySet();
//foreach 遍历key可以得到key,也可以得到value
for (Object s : sets) {
System.out.println("遍历 key: "+s);
}
//遍历获取所有的value
Collection values = map.values();
for (Object v : values) {
System.out.println("遍历所有的value: "+v);
}
}
}
TreeMap 一个可以排序的Map ,默认将key升序存储
public class TestTreeMap {
public static void main(String[] args) {
// TODO Auto-generated method stub
//创建 TreeMap 一个可以排序的Map ,默认将key升序存储
Map map = new TreeMap();
map.put("zhangsan", 98);
map.put("lisi", 95);
map.put("wangwu", 92);
map.put("zhaoliu", 93);
//遍历 map
Set keys = map.keySet();
for(Object obj : keys){
System.out.println(obj+"---"+map.get(obj));
}
//将 map降序
Map map2 = new TreeMap(new Comparator<String>() {
//自定义排序规则
@Override
public int compare(String o1, String o2) {
if(o1.compareTo(o2)>0){
return -1;
}else if(o1.compareTo(o2)<0){
return 1;
}
return 0;
}
});
map2.put("zhangsan", 98);
map2.put("lisi", 95);
map2.put("wangwu", 92);
map2.put("zhaoliu", 93);
System.out.println("输map2");
// 输出map2
Set entry = map2.entrySet();
for(Object obj : entry){
if(obj instanceof Map.Entry){
Map.Entry en = (Map.Entry)obj;
System.out.println(en.getKey()+"----"+en.getValue());
}
}
// 存储对象 key: 对象 id—— 学生对象
Map map3 = new TreeMap();
map3.put(1001, new Student(1001,"张三",22));
map3.put(1003, new Student(1003,"李四",22));
map3.put(1002, new Student(1002,"王五",22));
map3.put(1005, new Student(1005,"找流",22));
//获取value 将排行的value是 放入 一个有序的集合中Collectioin
Collection stus = map3.values();
for(Object obj : stus){
System.out.println(obj);
}
}
}