Map:通过键值对进行存储,就好比一个手机号对应一个微信号,手机号就可以看做是一个键,微信号就可以看做是手机号对应的值
两个实现类
1.HashMap:线程不安,全效率高。
2.HashTable:线程安全,效率低。
Map的常用方法和List,Set的常用方法基本一致。
Map方法判断数据相等的基础依然是equals方法,可以通过重写类中的equals方法来判断数据相等的条件。
package 容器Map;
import java.util.HashMap;
import java.util.Map;
/**
* Map用来存储键值对
* 一个键对应一个值
* 成对存储
* 地图----映射
* 一个手机号对应一个微信账号
* 通过键寻找值
* 就像通过地图上的北京寻找事实上的北京城
*
*
*
* 1.Map接口的常用方法:存储key-值value 键对象不能重复 以equals方法判断
*
* Map接口的实现类有
* HashMap TreeMap HashTable properties等
* HashMap 线程不安全,效率高。允许key或value为null
* HashTable 线程安全,效率低。不允许key或value为null
*
* 2.HashMap和HashTable的区别
* 3.泛型的简单使用
* 4.遍历三种容器的方式
*
*
*/
public class study_01 {
public static void main(String[] args) {
//method1();
method2();
}
private static void method1(){
Map map1=new HashMap();
//put()方法 放入元素
map1.put(1,"one");//1是integar对象,key和value都是对象
map1.put(2,"two");
map1.put(3,"three");//相当于给指针命名
map1.put(2,"二");//如果键重复则替换掉键的旧值,以equals方法为核心
//get()方法 通过key取出value
Object obj=map1.get(2);
System.out.println(obj);
System.out.println(map1);
System.out.println( map1.isEmpty());
System.out.println(map1.containsKey(4));
System.out.println(map1.containsValue("二"));
//remove()方法 移除
map1.remove(3);
System.out.println(map1);
}
private static void method2(){
Map map1=new HashMap();
//put()方法 放入元素
map1.put(1,"one");//1是integar对象,key和value都是对象
map1.put(2,"two");
map1.put(3,"three");//相当于给指针命名
map1.put(2,"二");//如果键重复则替换掉键的旧值,以equals方法为核心
Map map=new HashMap<>();
map.put("yi","111111111");
map.put("er","222222222222222");
map.put("san","333333333333");
map.putAll(map1);//将map1所有键值对放入map
System.out.println(map);
}
}