1.概念:双列集合,存储的每个元素均为键值对。可以通过键找到该建对应的值。
2.格式:map<key,value>
3.主要子类:
HashMap:底层为哈希表结构的Map集合,无序,放入相同键时,新的值覆盖旧的值,常用
LinkedHashMap:有序
TreeMap:对键排序
4.HashMap的主要方法:
添加key,value值:put()
获取长度:size()
是否包含key,value:containsKey () containsValue()
删除key:remove()
通过key获取value:get()
获取所有key的set集合:keySet()
获取到每个entry对象:entrySet(),返回Set<Map.Entry<K,V>>,Map.Entry :键值对映射关系:key=value
获取到key和vaue的方法:getKey(), getValue()
5.TreeMap:
概念:对键进行排序
import java.util.Set;
import java.util.TreeMap;
public class TreeMaps{
public static void main(String[] args) {
TreeMap<Object, Object> treeMap = new TreeMap<>();
treeMap.put(4,"a");
treeMap.put(3,"b");
treeMap.put(5,"c");
System.out.println(treeMap);
Set<Object> keySet = treeMap.keySet();
for (Object key : keySet){
System.out.print(key);
System.out.print(treeMap.get(key));
}
}
}
6.对HashMap集合进行遍历:
1).应用keySet()的iterator方法:
public class BianLi {
public static void main(String[] args) {
HashMap<String, String> hashMap = new HashMap<>();
hashMap.put("姓名","马舒琪");
hashMap.put("年龄","22");
Set<String> keySet = hashMap.keySet();
Iterator<String> iterator = keySet.iterator();
while (iterator.hasNext()){
String next = (String) iterator.next();
System.out.println(next);
String s = hashMap.get(next);
System.out.println(s);
}
}
}
应用keySet()的for增强方法:
public class BianLi {
public static void main(String[] args) {
HashMap<String, String> hashMap = new HashMap<>();
hashMap.put("姓名","马舒琪");
hashMap.put("年龄","22");
Set<String> keySet = hashMap.keySet();
for (String key : keySet){
System.out.println(key);
System.out.println(hashMap.get(key));
}
}
}
2).应用entrySet()的iterator()方法:
public class BianLi {
public static void main(String[] args) {
HashMap<String, String> hashMap = new HashMap<>();
hashMap.put("姓名","马舒琪");
hashMap.put("年龄","22");
Set<Map.Entry<String, String>> set = hashMap.entrySet();
Iterator<Map.Entry<String, String>> iterator = set.iterator();
while (iterator.hasNext()){
Map.Entry<String, String> next = iterator.next();
String key = next.getKey();
String value = next.getValue();
System.out.println("key:"+key+","+"value:"+value);
}
}
}
应用entrySet()的for增强方法:
public class BianLi {
public static void main(String[] args) {
HashMap<String, String> hashMap = new HashMap<>();
hashMap.put("姓名","马舒琪");
hashMap.put("年龄","22");
Set<Map.Entry<String, String>> set = hashMap.entrySet();
for (Map.Entry<String, String> keyvalues : set){
System.out.println(keyvalues);
System.out.println(keyvalues.getKey());
System.out.println(keyvalues.getValue());
}
}
}
7.LinkedHashMap集合
import java.util.LinkedHashMap;
import java.util.Set;
public class TreeMaps{
public static void main(String[] args) {
LinkedHashMap<Object, Object> linkedHashMap = new LinkedHashMap<>();
linkedHashMap.put(4,"a");
linkedHashMap.put(3,"b");
linkedHashMap.put(5,"c");
System.out.println(linkedHashMap);
Set<Object> keySet = linkedHashMap.keySet();
for (Object key : keySet){
System.out.print(key);
System.out.print(linkedHashMap.get(key));
}
}
}