您的位置:

HashMap修改value值详解

一、HashMap修改value值代码

HashMap map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);

// 修改value值
map.put("a", 4);

  

HashMap是Java中常用的数据结构之一,它提供了大部分基本的映射操作,包括添加、获取、删除、遍历等。HashMap允许使用null作为key或value,以及任意数量的null值,但是存储的键值对是无序的。我们可以使用put方法向HashMap中添加键值对,使用get方法从HashMap中获取键所对应的值。

如果我们需要修改已经存在的键值对中的value值,只需要使用put方法将新的value值赋给相应的key即可。

二、HashMap获取value值

HashMap map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);

// 获取value值
int a = map.get("a");

  

通过get方法可以获取HashMap中某个key对应的value值。如果key不存在,get方法会返回null。

三、HashMap修改值

HashMap map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);

// 修改value值
Integer oldValue = map.replace("a", 4);

  

除了使用put方法来修改值之外,我们还可以使用replace方法来实现。replace方法会将指定key的value值替换为新值,并返回旧的value值。如果key不存在,replace方法会返回null。

四、HashMap以value排序

HashMap map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);

// 将map按照value排序
List
   
    > list = new ArrayList<>(map.entrySet());
Collections.sort(list, (o1, o2) -> o1.getValue().compareTo(o2.getValue()));

// 输出排序后的map
for (Map.Entry
      entry : list) {
    System.out.println(entry.getKey() + ": " + entry.getValue());
}

     
    
   
  

如果我们需要按照value值对HashMap进行排序,可以将键值对全部转换为list,然后使用Collections.sort方法对list进行排序。可以使用匿名函数或Lambda表达式指定排序的方式。

五、HashMap根据value排序

HashMap map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);

// 使用链表记录排序后的键
List
    keys = new LinkedList<>();

// 获取map中的entry集合
Set
    
     > entrySet = map.entrySet();

// 定义比较器
Comparator
      
       
        > valueComparator = Comparator.comparing(Map.Entry::getValue); // 对entry集合排序 entrySet.stream().sorted(valueComparator).forEachOrdered(entry -> keys.add(entry.getKey())); // 输出排序后的keys for (String key : keys) { System.out.println(key + ": " + map.get(key)); }
       
      
     
    
   
  

另一种根据value排序的方式是,首先使用entrySet方法获取HashMap中所有的键值对,然后利用stream对键值对集合进行排序。这里使用了Comparator.comparing方法指定排序的比较器,以及forEachOrdered方法保证元素按照顺序输出。

六、获取map的value值

HashMap map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);

// 获取所有value值
Collection
    values = map.values();

   
  

如果我们需要获取HashMap中所有的value值,可以使用values方法。
values返回一个包含所有value值的集合,如果HashMap为空,则返回空集合。我们可以通过遍历集合来获取所有的value值。