一、Map简述
1.1、简述
public interface Map
类型参数:K - 此映射所维护的键的类型 keyV - 映射值的类型 value该集合提供键--值的映射。key不能重复,一对对的存储方式
将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。
1.2、方法
嵌套类摘要
static interface
方法摘要
void
boolean
true。
boolean
true。
boolean
null。
int
boolean
true。
Set 视图。
K key, V value)
将指定的值与此映射中的指定键关联(可选操作)。
void
Map extends K,? extends V> m)
从指定映射中将所有映射关系复制到此映射中(可选操作)。
int
1.3、常用子类
HashTable:底层是哈希表,不可以存入Null键Null值,线程是同步的JDK1.0效率低
HashMap:基于哈希表数据结构。允许使用Null键Null值,但只有一个Null键,线程非同步的。JDK1.2效率高
TreeMap:二叉树,线程不同步。可以用于给Map集中的key键进行排序。
和Sety集合很像,Set底层就是Map集合。
1.4、Put
添加元素,添加相同的键,那么后添加的值会覆盖的Vaule,put方法会返回被覆盖的值。
二、HashMap
2.1、常用方法
package com.pb.map.demo1;
import java.util.HashMap;
import java.util.Map;
public class MapDemo1 {
public static void main(String[] args) {
Map map=new HashMap();
//添加
map.put("01", "zhangsan");
System.out.println(map.put("01", "lisi002"));//zhangsan
map.put("02", "wangwu03");
map.put("03", "wangwu04");
map.put(null, "ffff");
map.put("04", "qqquqq");
//判断有没有key
System.out.println(map.containsKey("02"));//true
//判断 有这有 这个value
System.out.println(map.containsValue("ffff"));//true
//获取
System.out.println(map.get("03"));//wangwu04
System.out.println(map.get(null));//ffff
System.out.println(map.get("fdsfdsf"));//null
System.out.println(map.remove("02"));//返回value的值
System.out.println(map.remove("0fdsfd"));//没有就返回null
System.out.println(map);//{null=ffff, 01=lisi002, 03=wangwu04, 04=qqquqq} 是无序的
}
}
2.2、key和values
keySet:将map中所有的键 存入到Set集合。因为set具备迭代器。返回为set集合
可以迭代方式取出所有的键,在根据get方法,获取每一个键对应的值。
package com.pb.map.demo1;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class MapDemo2 {
public static void main(String[] args) {
Map map=new HashMap();
//添加
map.put("09", "zhaoliu");
map.put("01", "zhangsan");
map.put("02", "wangwu03");
map.put("03", "wangwu04");
map.put("04", "qqquqq");
//获取map集合中的所有键的集合
Set keySet=map.keySet();
//迭代所有键来获取值
Iterator iterator=keySet.iterator();
while(iterator.hasNext()){
String key=iterator.next();
//通过map.get(键)的方式来获取值
System.out.println(key+".........."+map.ge