Map接口
与Collection接口同等级,与Collection不同的是,Map是映射接口,成对元素放入,而Collection单元素放入
Collection< E e> <------------------------> Map(Key k,Value v)
HashMap实现类
HashMap()是Map其中的一个实现类
特点
- 输出无序
- Key(键值)唯一
import java.util.HashMap;
public class HashMapTest {
public static void main(String[] args) {
HashMap<Integer,String> hs =new HashMap<Integer, String>();
hs.put(12,"小红");
hs.put(13,"小李");
hs.put(12,"小明"); //键值冲突,替换原键值的value
hs.put(14,"小李");
hs.put(11,"小华");
System.out.println(hs);
}
}
常用方法
- put(key,value)
放入元素 - get(key)
返回键值key的映射值 - clear()
清空所有元素 - remove(key)
删除键值key的元素 - containsKey(key)/containsValue(value)
判断集合是否包含键值key/映射值value元素
遍历方法
不能使用普通for循环遍历
- keySet() 对键值进行遍历
import java.util.HashMap;
import java.util.Set;
public class HashMapTest {
public static void main(String[] args) {
HashMap<Integer,String> hs =new HashMap<Integer, String>();
hs.put(13,"小李");
hs.put(12,"小明");
hs.put(14,"小李");
hs.put(11,"小华");
Set<Integer> key = hs.keySet();//对键值遍历
for (Integer i:key) {
System.out.println(i);
}
}
}
- values() 对映射值进行遍历
import java.util.Collection;
import java.util.HashMap;
public class HashMapTest {
public static void main(String[] args) {
HashMap<Integer,String> hs =new HashMap<Integer, String>();
hs.put(13,"小李");
hs.put(12,"小明");
hs.put(14,"小李");
hs.put(11,"小华");
Collection<String> value = hs.values(); //对映射值遍历
for (String s:value) {
System.out.println(s);
}
}
}
- enrtySet() 同时对key和value遍历
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class HashMapTest {
public static void main(String[] args) {
HashMap<Integer,String> hs =new HashMap<Integer, String>();
hs.put(13,"小李");
hs.put(12,"小明");
hs.put(14,"小李");
hs.put(11,"小华");
Set<Map.Entry<Integer, String>> kv = hs.entrySet(); //同时对key和value遍历
for (Map.Entry<Integer,String> t:kv) {
System.out.println(t.getKey()+":"+t.getValue());
}
}
}