HashMap详解(其实也不详细)
Map接口介绍
Map接口特点
Map接口定义了双例集合的存储特征,它并不是Collection接口的子接口。
双例集合的存储特征是以key 与value结构为单位进行存储。体现的是数学中的函数 y=f(x)感念。
Map 与 Collecton的区别:
Collection中的容器,元素是孤立存在的,向集合中存储元素采用一个全元素的方式存储。
Map中的容器,元素是成对存在的
每个系由键与值两部分组成,通过键可以找对所对应的值。
Collection 中的容器称为单列集合。Map 中的容器称为双列集合。
Map中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。
Map中常用的容器为HashMap,TreeMap 等。
Ⅰ.添加元素
V put(K key,V value)把key与Value添加到Map集合中
特点①如果HashMap容器中存在该key,则新的Value会覆盖原来的Value
特点②在前提为存在被覆盖的元素,put方法返回值为被覆盖的元素,否则返回空
案例:
import java.util.HashMap;
public class demo {
public static void main(String[] args) {
HashMap<Integer, Integer> map = new HashMap<>();//实例化hashmap集合
map.put(1,2);//添加元素,<k,v> <1,2>
int value=map.put(1,4);//因为key<1,2>和<1,4>key相同,所以4覆盖2,返回值value为2
System.out.println(value);//返回值value为2
}
}
Ⅱ.获取元素
方法一
V get(Object key)根据指定的key,获取对应的value
这个方法存在劣势:如果不提前知道容器中key的值,不能取对应value
优势在于已知key取对应元素
import java.util.HashMap;
public class demo {
public static void main(String[] args) {
HashMap<Integer, Integer> map = new HashMap<>();
System.out.println("-------1.添加元素--------");
map.put(1,2);
int value=map.put(1,4);
System.out.println(value);
System.out.println("------2.获取元素--------");
Integer get1 = map.get(1);
System.out.println(get1);
}
}
方法二
Set keyset()获取Map集合中所有的key,存储到set集合中
import java.util.HashMap;
import java.util.Set;
public class demo {
public static void main(String[] args) {
HashMap<Integer, Integer> map = new HashMap<>();
System.out.println("-------1.添加元素--------");
map.put(1,2);
int value=map.put(1,4);
System.out.println(value);
System.out.println("---