javase之map集合

一.定义
1.Map集合是一个双列集合,以键值对的形式存在
2.将键和值捆绑到一起存放(Map.Entry)
3.一个映射不能包含重复的键
4.如果出现相同的键,会用新的值覆盖老的值

二.Map接口和Collection接口的不同

1.Map是双列的,Collection是单列的
2.Map集合的数据结构针对键有效, 跟值无关, 3.Collection 集合的数据结构是针对元素有效
三.常用方法

添加方法:
V put(K key , V value): 添加元素
如果键是第一次存储, 直接存储元素,返回null
如果键不是第一个存在, 就用值把以前的值替换掉,返回以前的值

删除方法:
void clear() : 移除所有的键值对元素
V remove(Object key) : 根据键删除键值对元素, 并把值返回

判断方法:
boolean containsKey(Object key) : 判断集合是否包含指定的键
boolean containsValue(Object value): 判断集合是否包含指定的值
boolean isEmpty: 判断集合是否为空

获取方法:
Set<Map.Entry<K,V>> entrySet() : 获取所有的键值对
V get(Object key) : 根据键获取值
Set keySet() : 获取集合中所有键的集合
Collection values() : 获取集合中所有值的集合
int size() : 返回集合中键值对的个数
四.举例

public static void main(String[] args) {
 Map<String, Integer> map = new HashMap<>();
 
 //添加方法
 map.put("张三", 18);
 map.put("李四", 24);
 map.put("王五", 26);
 map.put("赵六", 19);
 map.put("田七", 18);
 System.out.println(map);
 
 //判断键是否存在
 boolean f = map.containsKey("张三");
 System.out.println(f);
 //判断值是否存在
 flg = map.containsValue(18);
 System.out.println(f);
 //判断集合是否为空
 flg = map.isEmpty();
 System.out.println(f);
 //根据键获取值
 Integer i = map.get("田七");
 System.out.println(i);
 //获取集合中元素的个数
 int size = map.size();
 System.out.println(size);
 //获取集合中所有的键值对
 Set<Map.Entry<String, Integer>> entry = map.entrySet();
 System.out.println(entry );
 //获取集合中所有键
 Set<String> key = map.keySet();
 System.out.println(key);
 //获取集合中所有的值
 Collection<Integer> value = map.values();
 System.out.println(value);
 
}

五.Map集合的遍历
获取所有键的集合的遍历

public static void main(String[] args) {
 Map<String, Integer> map = new HashMap<>();
 
 map.put("张三", 18);
 map.put("李四", 24);
 map.put("王五", 26);
 map.put("赵六", 19);
 map.put("田七", 18);
 
 Set<String> keyset = map.keySet();
 Iterator<String> it = keyset.iterator();
 while (it.hasNext()) {
 String key = it.next();
 Integer value = map.get(key);
 System.out.println("键:"+key+" 值:"+value);
 }
}

获取所有的值的遍历

public static void main(String[] args) {
 Map<String, Integer> map = new HashMap<>();
 
 map.put("张三", 18);
 map.put("李四", 24);
 map.put("王五", 26);
 map.put("赵六", 19);
 map.put("田七", 18);
 
 Collection<Integer> values = map.values();
 Iterator<Integer> it = values.iterator();
 while (it.hasNext()) {
 Integer value = it.next();
 System.out.println("值:"+value);
 }
}

获取所有键值对的遍历

public static void main(String[] args) {
 Map<String, Integer> map = new HashMap<>();
 
 map.put("张三", 18);
 map.put("李四", 24);
 map.put("王五", 26);
 map.put("赵六", 19);
 map.put("田七", 18);
 
 Set<Entry<String, Integer>> entrySet = map.entrySet();
 Iterator<Entry<String, Integer>> it = entrySet.iterator();
 while (it.hasNext()) {
 Map.Entry<String,Integer> entry = it.next();
 String key = entry.getKey();
 Integer value = entry.getValue();
 System.out.println("键:"+key+" 值:"+value);
 }
}

六. HashMap

1.定义
1).底层使用的是数组
2).HashMap就是通过我们存入的key获取到一个hash值, 经过计算之后, 获取到一个数组角标, 然后将key和value封装到一个Entry里面, 然后存入数组
3).当数组容量不够的时候, 会自动扩容一倍

2.构造方法
1)HashMap():
构造一个具有默认初始容量(16) 和默认加载因子(0.75)的空HashMap
2)HashMap(int initialCapacity):
构造一个带指定初始容量和默认加载因子 (0.75) 的空HashMap
3)HashMap(int initialCapacity, float loadFactor):
构造一个带指定初始容量和加载因子的空HashMap
4)HashMap(Map<? extends K, ?extends V> m):
构造一个映射关系与制定Map相同的新HashMap

3.常用方法
1)put(K key, V value) : 在此映射中关联指定值与指定键
2)putAll(Map<? extends K, ?extends V> m) : 将另外一个map集合复制到此集合中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值