Map常用方法使用及多种循环方式

测试代码:

Map map=new HashMap();
map.put("k5","v5");
Map map1=new HashMap();
map1.put("k1","v1");
map1.put("k2","v2");
map1.put("k3","v3");
map1.put("k4","v4");

Map常用方法的使用:

//清除map中的所有数据
map.clear();
//判断map中是否包含key为"key"的数据,存在返回true,不存在返回false
map.containsKey("key");
//判断map中是否包含value为"value"的数据,存在返回true,不存在返回false
map.containsValue("value");
//取出的是关系,关系中包含key和value,其中Map.Entry<k,V>来表示这种数据类型,即:将map集合中的映射关系存入到set集合中,这个关系的数据类型为:Map.Entry
map.entrySet();
//判断集合map和集合map1数据是否相同,根据以上特性,很显然我们可以用hash比较2个对象是否相等。这也是为什么Java重新equal就要重写hashCode的原因。hashCode相同返回true,不相同返回false
map.equals(map1);
//获取map里key为"key"的value值
map.get("key");
//hash是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数
map.hashCode();
//判断map为空返回true,不为空返回false
map.isEmpty();
//将map中所有的键存入到Set集合,因为set具备迭代器,所有迭代方式取出所有的键,再根据get()方法  ,获取每一个键对应的值
map.keySet();
//将map里存储key为"k1"的"v1"值
map.put("k1","v1");
//将map1里的数据全部添加到map中,并覆盖key相同的value值
map.putAll(map1);
//将map1中key为"k5"的数据,并返回删除成功的value值,若移除失败则返回null
Object k1 = map1.remove("k5");
//获取map总全部value值放在Collection类中返回
map.values();
//获取map的大小个数
map.size();

Map的循环

/**
 * 使用forEach遍历map
 */
for (Object key : map.keySet()) {
    System.out.println("key= "+ key + " and value= " + map.get(key));
}

/**
 * 使用迭代器遍历map
 */
Iterator it=map.keySet().iterator();

Object key;

Object value;

while(it.hasNext()){

    key=it.next();

    value=map.get(key);

    System.out.println(key+":"+value);

}

/**
 * 使用迭代器遍历map
 */
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());
}

/**
 * 容量大时,推荐
 */
for (Map.Entry<String, String> entry : map.entrySet()) {
    System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}

/**
 * 通过Map.values()遍历所有的value,但不能遍历key
 */
for (String v : map.values()) {
    System.out.println("value= " + v);
}
技术的升级迭代只是为了淘汰那些不学习的人!!!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值