目录
第一种方法:Set names = scores.keySet();
第二种方法:Set> entries = scores.entrySet();
Map接口导图
一、Map接口概述
Map集合基于 键(key)/值(value)映射。每个键最多只能映射一个值。键可以是任何引用数据类型的值,不可重复;值可以是任何引用数据类型的值,可以重复;键值对存放无序。
Map常用实现类:
1、HashMap:允许使用 null 值和 null 键;此类不保证映射的顺序;在多线程操作下不安全
2、LinkedHashMap:基于哈希表和链接列表的实现类;具有可预知的迭代顺序(双重链接表的有序性)
3、Properties:Hashtable的一个子类;属性列表中每个键及其对应值都是一个字符串;在多线程操作下安全
二、Map接口常用方法
1、put(K key, V value)
将键(key)/值(value)映射存放到Map集合中
Map<String,Integer> scores = new HashMap<String,Integer>();
//<String,Integer>,其中String用于限定key的数据类型,Integer显示value的数据类型,泛型不能使基本数据类型
scores.put("Jim", 100);//添加数据
scores.put("Lucy", 60);//Map集合key不允许重复,重复的话以最后一个为主
2、get(Object key)
返回指定键所映射的值,没有该key对应的值则返回 null
int score = scores.get("Jim");//获取Jim的成绩,与List Set 不同
System.out.println(score);
System.out.println(score.get("jim"));
3、size()
返回Map集合中数据数量
int size = scores.size();
System.out.println(size);
System.out.println(score.size());
4、clear()
清空Map集合
scores.clear();//清空集合中的元素
size = scores.size();
System.out.println(size);
5、isEmpty ()
判断Map集合中是否有数据,如果没有则返回true,否则返回false
boolean flag = scores.isEmpty();//用于判断集合中是否含有元素;没有则为true,否则为false
System.out.println(flag);
6、remove(Object key)
删除Map集合中键为key的数据并返回其所对应value值。
score.remove("Jim");
7、replace(K key, V value)
替换对应key的值value
scores.replace("Jim", 0);//替换
三、遍历方法
第一种方法:Set<String> names = scores.keySet();
Set<String> names = scores.keySet();//获取集合中所有Key-value的Key组成的Set集合
加强遍历:
for(String key : names) {
int value = scores.get(key);
System.out.println(value);
}
迭代器遍历:
Iterator<String> iterator = names.iterator();
while(iterator.hasNext()) {
String key = iterator.next();
int value = scores.get(key);
System.out.println(iterator.next());
}
第二种方法:Set<Entry<String,Integer>> entries = scores.entrySet();
Set<Entry<String,Integer>> entries = scores.entrySet();//将HashMap集合中的key-value用Entry对象包含
加强遍历:
for(Entry<String,Integer> entry : entries) {
String key = entry.getKey();
int value = entry.getValue();
System.out.println(value);
}
迭代器遍历:
Iterator<Entry<String,Integer>> it = entries.iterator();
while(it.hasNext()) {
Entry<String,Integer> entry = it.next();
String key = entry.getKey();
int value = entry.getValue();
System.out.println(value);
}