Map集合
2018-11-14 本文已影响6人
我把心事寄流年
特点
-
一一对应
-
元素成对存在,由键(key)与值(value)两部分构成。
-
双列集合
-
键是唯一的,但是值可以重复。一个键只能对应一个值
常见子类有HashMap集合和LinkedHashMap集合
HashMap集合特点:元素的存储顺序不一致
LinkedHashMap特点:元素存取顺序一致
共同点:需要重写hashCode和equals方法。泛型的数据类型,可以相同,也可以不同。
常用方法:
创建集合:
HashMap<K,V> map = new HashMap<>();
添加对象
map.put(key,value);
覆盖对象(key值不变,value变)
map.put(key,value);//和上面put里面的key保持一样。
删除对象
map.remove(key);
获取指定key上的值(value):
map.get(key);
判断集合中是否有此时输入的键(key):
map.containsKey(key);
判断集合中此时是否有输入的值(value)
map.containsValue(value);
获取集合中所有的键到Set集合:
map.keySet();
获取集合中的键值对对象到Set集合(相当于复制map集合到Set集合)
map.entrySet();
Map集合遍历value值:
1.先将map集合存到Set集合中
2.然后for循环,利用map.get(key)方法
例:
package A;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class Demo {
public static void main(String[] args) {
HashMap<Integer,String> map = new HashMap<>();
map.put(1,"小明");
map.put(2,"小刚");
map.put(3,"小强");
Set<Integer> set = map.keySet();
for (Integer key : set) {
String value = map.get(key);
System.out.println(value);
}
}
}
Map集合遍历键与值
1.先需要用entrySet()方法将Map集合存储到Set集合中。
2.然后for循环遍历,利用entry.getKey()和entry.getValue()方法
例:
package A;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class Demo {
public static void main(String[] args) {
HashMap<Integer,String> map = new HashMap<>();
map.put(1,"小明");
map.put(2,"小刚");
map.put(3,"小强");
Set<Map.Entry<Integer, String>> entrySet = map.entrySet();
for (Map.Entry<Integer, String> entry : entrySet) {
Integer key = entry.getKey();
String value = entry.getValue();
System.out.println(key+"="+value);
}
}
}