您的位置:首页 > 其它

集合--Map

2019-04-04 14:23 98 查看

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);
}

}

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: