map集合及遍历

Map集合:
该集合存储键值对。一对一对往里存,而且要保证键的唯一性。
键:就是存的值的编号
值:就是要存放的数据
1.添加
put(K key, V value);
添加元素,如果出现添加时,相同的键,那么后添加的值会覆盖原有键对应的值,并put方法会返回被覆盖的值。
2.删除
clear();
remove(Object key)
3.判断
boolean containsKey(Object key)
boolean containsValue(Object value) 
4.获取
get(Object key)
size()
values()


entrySet()
keySet()
Map: 
|--Hashtable:底层是哈希表数据结构,不可以存入null键和nul值,该集合线程是同步的。效率低。
|--HashMap:底层是哈希表数据结构,并允许使用null值和null键,该集合线程是不同步的。效率高。
|--TreeMap:底层是二叉树数据结构,线程不同步,可以用于Map集合中的键进行排序。

和Set很像,其实Set底层就是使用了Map集合。


Map集合的两种取出方式:
1.keySet:将Map中的所有键存入到Set集合。因为Set具备迭代器。所有的迭代方式取出的所有键,在根据get方法,获取每一个键对应的值。


Map集合的取出原理:将map集合转换成set集合。在通过迭代器取出。
2.Set <> entrySet:将Map集合中的映射关系存入到了set集合中,而这个关系数据类型就是Map.Entry。
Map.Entry其实Entry也是一个接口,它是Map接口中的一个内部类


Map集合扩展知识:

map集合被使用是因为具备映射关系。


public static void main(String[] args) {
  Map<String, String> map = new HashMap<String, String>();
  map.put("1", "value1");
  map.put("2", "value2");
  map.put("3", "value3");
  
  //第一种:普遍使用,二次取值
  System.out.println("通过Map.keySet遍历key和value:");
  for (String key : map.keySet()) {
   System.out.println("key= "+ key + " and value= " + map.get(key));
  }
  
  //第二种
  System.out.println("通过Map.entrySet使用iterator遍历key和value:");
  Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
  while (it.hasNext()) {
   Map.Entry<String, String> entry = it.next();
   System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
  }
  
  //第三种:推荐,尤其是容量大时
  System.out.println("通过Map.entrySet遍历key和value");
  for (Map.Entry<String, String> entry : map.entrySet()) {
   System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
  }

  //第四种
  System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
  for (String v : map.values()) {
   System.out.println("value= " + v);
  }
 }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值