目录
概述
认识Map集合
在什么情形下使用
Map集合体系
Map集合体系的特点
常用方法
Map集合
概述
认识Map集合
- Map集合称为双列集合,格式:{key1=value1,key2=value2,key3=value3,...),一次需要存一对数据做为一个元素
- Map集合的每个元素“key=value”称为一个键值对/键值对对象/一个Entry对象,Map集合也被叫做“键值对集合”
- Map集合的所有键是不允许重复的,但值可以重复,键和值是一一对应的,每一个键只能找到自己对应的值
在什么情形下使用
- 需要存储一一对应的数据时,就可以考虑使用Map集合来做。
例如在购物车中,每一件商品就是一个键,商品的购买数量就是对应的值;
{ 商品1 = 2,商品2 = 3,商品3 = 2,商品4 = 3 },就代表着商品1购买了两件,商品2购买了三件依此类推。
Map集合体系
Map集合体系的特点
注意:Map系列集合的特点都是由键决定的,值只是一个附属品,值是不做要求的。
- HashMap(由键决定特点):无序、不重复、无索引;(用的最多)
- LinkedHashMap(由键决定特点):由键决定的特点:有序、不重复、无索引。
- TreeMap(由键决定特点):按照大小默认升序排序、不重复、无索引。
代码演示
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.TreeMap;public class MapTest1 {public static void main(String[] args){Map<String,Integer> map1 = new HashMap<>(); //一行经典代码。 按照键 无序,不重复,无索引Map<String,Integer> map2 = new LinkedHashMap<>(); //有序,不重复,无索引map1.put("手表",100);map1.put("手表",220);map1.put("手机",2);map1.put("Java",2);map1.put(null,null);map2.put("手表",100);map2.put("手表",220);map2.put("手机",2);map2.put("Java",2);map2.put(null,null);System.out.println("(HashMap) map1:" + map1);System.out.println("(LinkHashMap) map2:" + map2);Map<Integer,String> map3 = new TreeMap<>(); //可排序,不重复,无索引map3.put(23,"Java");map3.put(23,"MySQL");map3.put(19,"李四");map3.put(20,"王五");System.out.println("(TreeMap) map3:" + map3);}
}
运行结果:
常用方法
为什么要先学习Map的常用方法?
- 与Collection集合一样,Map是双列集合的祖宗,它的功能是全部双列集合都可以继承过来使用的。
方法名称 | 说明 |
---|---|
public V put(K key,V value) | 添加元素 |
public int size() | 获取集合的大小 |
public void clear() | 清空集合 |
public boolean isEmpty() | 判断集合是否为空,为空返回true,反之 |
public V get(object key) | 根据键获取对应值 |
public V remove(object key) | 根据键删除整个元素 |
public boolean containsKey(Object key) | 判断是否包含某个键 |
public boolean containsValue(Object value) | 判断是否包含某个值 |
public Set<K> keySet() | 获取全部键的集合 |
public Collection<V> values() | 获取Map集合的全部值 |
添加元素 (无序,不重复,无索引)
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;public class MapTest2 {public static void main(String[] args) {Map<String,Integer> map = new HashMap<>(); map.put("手表",100);map.put("手表",220);map.put("手机",2);map.put("Java",2);map.put(null,null);System.out.println(map);}
}
运行结果:
获取集合的大小&清空集合&判断集合是否为空
运行结果:
根据键获取对应值&根据键删除整个元素(删除键会返回键的值)
运行结果:
判断是否包含某个键&判断是否包含某个值
运行结果:
获取Map集合的全部值&把其他Map集合的数据倒入自己集合中来
运行结果:
END
学习自:黑马程序员——JavaSE课程