精华内容
下载资源
问答
  • 2018-02-07 10:15:21

    要新年了,提前祝大家新年快乐,一帆风顺,万事如意,阖家欢乐!

    上一篇文章中已经说过:HashMap的参数的拼接
    http://blog.csdn.net/willba/article/details/79268387

    这篇主要是说 根据特定的Value值,获取对应的key值,如下

    //封装假数据
    HashMap<String,String> map = new HashMap<>();
    map.put("keyOne","valueOne");
    map.put("keyTwo","valueTwo");
    map.put("keyThree","valueThree");
    
    String newStr = "";
    String str = valueTwo.00;
    //截取小数点前面的数据
    String data = str.substring(0,str.indexOf(".");
    //循环HashMap内的对象 在根据value值进行操作
    for(Map.Entry<String,String> mapEntry : map.entrySet()){
    	if(map.getValue().equals(data)){
    	  newStr = map.getKey();
    	  } }
    

    以上!就是这样…

    更多相关内容
  • 下面我们来根据value获取key根据key获取value(1.foreach循环遍历 2.迭代器遍历) 举一个例子会更生动! 题目 创建一个Map集合,在集合中放入年份、世界杯冠军获得的国家。存储的键值对例如:“1994”,“巴西”;...
  • HashMap的遍历(利用key获取value

    千次阅读 2019-07-22 16:41:51
    import java.util.HashMap; import java.util.Map; import java.util.Set; public class better { public static void main(String[] args){ Map<String, String> map=new HashMap<String,S...

    package study;

    import java.util.HashMap;
    import java.util.Map;
    import java.util.Set;

    public class better {
    public static void main(String[] args){
    Map<String, String> map=new HashMap<String,String>();
    map.put(“201901”,“chen”);
    map.put(“201902”, “huang”);
    map.put(“201903”, “zhang”);
    Set keys=map.keySet();
    for (String key : keys) {
    String value=map.get(key);
    System.out.println(key+"—"+value);
    }
    }
    }
    在这里插入图片描述

    展开全文
  • HashMap中通过key获取value源码剖析

    千次阅读 2018-08-09 19:00:07
    public V get(Object key) {  if (key == null)  return getForNullKey();  Entry&lt;K,V&gt; entry = getEntry(key);  return null == entry ? null : entry.getValue();  } ...
    public V get(Object key) {
            if (key == null)
                return getForNullKey();
            Entry<K,V> entry = getEntry(key);
    
            return null == entry ? null : entry.getValue();
        }
    
       private V getForNullKey() {
            if (size == 0) {
                return null;
            }
            for (Entry<K,V> e = table[0]; e != null; e = e.next) {
                if (e.key == null)
                    return e.value;
            }
            return null;
        }

    这段代码我大致是这么理解的,首先传递一个key过来,判断这个key是否存在,如果key为null,会走getForNullKey方法,getForNullKey进来之后会继续判断他的长度是否为0,如果为0的情况那么会反回空到控制台, 否者会获取table[0]上面的entry,然后会返回entry上面key为null的value到控制台;  

     final Entry<K,V> getEntry(Object key) {
            if (size == 0) {
                return null;
            }
    
            int hash = (key == null) ? 0 : hash(key);
            for (Entry<K,V> e = table[indexFor(hash, table.length)];
                 e != null;
                 e = e.next) {
                Object k;
                if (e.hash == hash &&
                    ((k = e.key) == key || (key != null && key.equals(k))))
                    return e;
            }
            return null;
        }

    这段代码大致意思是,如果key不等于null,会根据这个key的哈希值,再到table数组里面找到对应的下标,获取entry;下面的e = e.next;我理解的意思是如果发生了哈希碰撞,那么一个位置可能会存在多个entry,那么多个entry的哈希值肯定是相同.然后自定义了一个Object k 变量;下面先把entry.key赋值给了k;再与传递过来的key进行的对比,如果相等的话就会返回entry;返回的entry从新回到了get()方法中,然后就可以通过这个entry.getValue()获取到他的value值返回到控制台了.

    展开全文
  • hashmap如何根据key找到value

    千次阅读 2019-09-02 16:38:08
    1、hashmap如何根据key找到value? 首先新建一个Node用于接收查询出来的Node节点 hash(key)计算其hash码,并传入到getNode()方法中 ,根据hash码和对应的key找到对应的节点 public V get(Object key)...

    1、hashmap如何根据key找到value?

    • 首先新建一个Node用于接收查询出来的Node节点

    • hash(key)计算其hash码,并传入到getNode()方法中 ,根据hash码和对应的key找到对应的节点

    public V get(Object key) {
    
    Node<K,V> e;
    
    return (e = getNode(hash(key), key)) == null ? null : e.value;
    
    }

     

    • 我们先看Node, 可知这是一个实现Map.Entry的内部类

    static class Node<K,V> implements Map.Entry<K,V> {
    
    final int hash;
    
    final K key;
    
    V value;
    
    Node<K,V> next;
    • 这是其中的一些方法,总结:Node是一个节点,为Key,Value形式。

    • 然后我们来看getNode()

    • TODO 红黑树中如何查找

    final Node<K,V> getNode(int hash, Object key) {
    
    Node<K,V>[] tab; Node<K,V> first, e; int n; K k; //新建一个Node类型链表数组,新建一个first
    
    if ((tab = table) != null && (n = tab.length) > 0 &&   // tab 指向hash表,n为hash表的长度,first为桶中(链表数组)的第一个节点
    
    (first = tab[(n - 1) & hash]) != null) { //当hash表中不为空并且头一个节点也不是null的时候
    
        if ( first.hash == hash && // always check first node 
    
        ((k = first.key) == key || (key != null && key.equals(k)) ) ) //如果头结点的hash码等于要找的hash码,并且对一个的key也是相等的话,就直接返回头节点
    
        return first;
    
        if ((e = first.next) != null) { //头节点下一个不是null
    
        if (first instanceof TreeNode) //如果是红黑树存储,就去红黑树里面找
    
            return ((TreeNode<K,V>)first).getTreeNode(hash, key);
    
        // 不是红黑树存储的话
    
        do { //遍历hash表,直到找到与对应结点的hash码值和对应key值相等的为止,并返回
    
            if (e.hash == hash &&
    
            ((k = e.key) == key || (key != null && key.equals(k))))
    
            return e;    
    
        } while ((e = e.next) != null);
    
        }
    
    }
    
    return null;
    
    }

    总结:

    • 首先根据要查找的key计算出对应的哈希码

    • 然后通过哈希码找到对应哈希表中桶中的地址

    • 然后判断桶是链表结构还是红黑树结构

      • 普通链表直接遍历链表查找即可

      • 红黑树TODO

    展开全文
  • Map 中是一个 key有且只有一个value,但是一个value可以对应多个key值,一般都是通过key,然后... //根据value值获取到对应的key值 public static String getKey(HashMap<String, String> map, String value) { S.
  • HashMap根据value获取key

    千次阅读 2021-09-10 15:23:38
    HashMap<String, String> map = new HashMap<>(); map.put("1","3"); map.put("2","2"); map.put("3","1"); String key = null; for(String getKey: map.keySet()){ if(map.get(getKey
  • hashmap通过value获取key值

    千次阅读 2018-10-15 16:06:11
    前言:此方法用于value...//根据value值获取到对应的一个key值 public static String getKey(LinkedHashMap&lt;String,String&gt; map,String value){ String key = null; //Map,HashMap并没有实现Iter...
  • Java根据key值修改Hashmap中的value值

    千次阅读 2022-05-05 00:09:38
    如果原来map中没有key,会创建,如果原来有key,会使用value 覆盖掉原来的 map.put(key,value); 这个实现对原值加一(前提是有这个key) map.put(key,map.get(key)+1); 以下可以获取key对应的value,如果没有...
  • (转)关于HashMap根据Value获取Key

    千次阅读 2017-09-18 15:14:03
    原地址; 关于我对java中集合的总结有如下三篇: 关于JDK中的集合总结(一) 关于JDK中的集合总结(二) ...但是一个value可以对应多个key值. 一般都是通过key,然后map.get(key)获得到value. 如果想要反向
  • 获取hashmap中的keyvalue的方法

    千次阅读 2021-01-04 20:47:11
    occurrences = new HashMap<Integer, Integer>(); //进行遍历 for (Map.Entry<Integer, Integer> entry : occurrences.entrySet()) { int num = entry.getKey(), count = entry.getValue(); } 其中 num...
  • package com.qst.netty04; import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBufAllocator; import lombok.extern.slf4j.Slf4j; import java.util.*;... HashMap<... map = new HashMap<String, I
  • 本文总结hashmap分别根据key值和value值排序的方法。 一、根据key排序 hashmap是无序的。 当所有key的hash的最大值<数组的长度-1时,HashMap可以将存入的元素按照key的hash从小到大排序。这个后期我会从源码的...
  • Java 关于HashMap根据value反向获取key值

    千次阅读 2017-03-23 13:10:31
    但是一个value可以对应多个key值. 一般都是通过key,然后map.get(key)获得到value. 如果想要反向通过value获得key,提供以下方法: package com.jglz.qing.map; import java.util.ArrayList; import java...
  • 本文讲解了java HashMap通过value反查key的方法,直接提供代码供大家参考使用
  • map通过Key获取Value值

    万次阅读 2019-01-07 18:01:00
    Map, String> map = new HashMap, String>(); map.put(3, "小王"); map.put(4, "小宋"); map.put(1, "小白"); map.put(2, "小陈"); for (Student student : arrayList) { student.setName(map.get...
  • java里面获取map的keyvalue的方法

    万次阅读 2021-02-12 11:43:20
    获取map的key和value的方法分为两种形式:map.keySet():先获取map的key,然后根据key获取对应的value;map..entrySet():同时查询map的key和value,...注意:当map的value值相等时,根据key值进行排序public class ...
  • hashMapkeyvalue互换

    千次阅读 2020-11-03 17:33:06
    如果value作为key值出现复情况,留在原HashMap (变最a)中,最后打印出变量a和b集合的数量, 存放有数据的原HashMap HashMap<String,String> a = new HashMap<String,String>; 互换后的HashMap HashMap...
  • HashMap中的put方法获取key值对应索引的大致相关源码: //put方法 public V put(K key, V value) { return putVal(hash(key), key, value, false, true); } //hash方法 static final int hash(Object key) { int...
  • hashMap分别获取所有keyvalue

    万次阅读 2017-10-12 10:28:23
    //去除value中重复,相同仅仅保留一个 Set<Integer> valuesSimple=new HashSet(); for(int i:values){ valuesSimple.add(i); } Iterator<Integer> iterator3=valuesSimple.iterator(); while (iterator3....
  • HashMap遍历keyvalue的两种方式

    千次阅读 2019-03-11 17:51:00
     \\获取keyvalue的set while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); \\把hashmap转成Iterator再迭代到entry Object key = entry.getKey(); \\从entry获取key Object val = entry....
  • HashMap中的值是成对地放置的,即VALUE-KEY.因此我们一般在MAP中取出数据时得根据KEY来取出VALUE.但若我们想出VALUE值,但却不知对应地KEY,这时我们就得先遍历VALUE值,找出对应地KEY值,再根据KEY值取出VALUE值
  • import java.util.HashMap; import java.util.Map; public class Main{ public static void main(String[] args) { HashMap<Integer,Integer>... //key---value map.put(1,2); map.put(2,3); map.
  • HashMap相同key累加value的问题

    千次阅读 2019-12-03 14:36:25
    import java.util.HashMap; import java.util.Map; public class Test { public static void main(String[] args) { Map<String, Long> map = new HashMap<String, Long>(); map.put("k", 1L); m...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 364,527
精华内容 145,810
关键字:

hashmap根据key获取value值