天天看点

java 循环map kay_HashMap合并相同key的value

Map map1 = new HashMap<>();

map1.put("x", "y");

map1.put("a", "b");

map1.put("c", "d");

map1.put("e", "d");

map1.put("f", "b");

map1.put("m", "n");

Map> map2 = new HashMap<>();

String entryValue = null;

String entryKay = null;

ArrayList tmpValue = new ArrayList<>();

ArrayList tmpMap2Value = new ArrayList<>();

for (Entry entry : map1.entrySet()) {

tmpValue.clear();

tmpMap2Value.clear();

entryKay = entry.getKey();

entryValue = entry.getValue();

if (map2.keySet().contains(entryValue)) {

tmpMap2Value = map2.get(entryValue);

tmpMap2Value.add(entryKay);

map2.put(entryValue, (ArrayList) tmpMap2Value.clone());

} else {

tmpValue.add(entryKay);

map2.put(entryValue, (ArrayList) tmpValue.clone());

}

}

System.out.println(map2);

java 循环map kay_HashMap合并相同key的value

Java不能 通过简单的赋值来解决对象复制的问题,需要利用clone实现。

【转】HashMap集合中key只能为引用数据类型,不能为基本类型

在HashMap中,为什么不能使用基本数据类型作为key? 其实和HashMap底层的存储原理有关,HashMap存储数据的特点是:无序.无索引.不能存储重复元素. 存储元素采用的是hash表存储数据 ...

HashMap 的遍历key与value的方法

HashMap最经常使用的使用方法是依据key增删改查value,有时候会须要知道一个HashMap有多少个keys以及这些keys都是什么,能够用以下的代码实现. 方法1: Map map = ne ...

一个简单需求:HashMap实现相同key存入数据后不被覆盖

做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 看似是一个简单的问题,其实里面包含很多的东西! 需求: 实现一个在HashMap中存入(任意类型)相同的key值后,key ...

JDK1&period;7的HashMap的put&lpar;key&comma; value&rpar;源码剖析

目录 HashMap的put操作源码解析 1.官方文档 2.put(key, value) 3.完结 HashMap的put操作源码解析 1.官方文档 1.1.继承结构 java.lang.Objec ...

如何高效的遍历HashMap 以及对key 进行排序

Map map = new HashMap(); for(int i = 0; i<=100;i++){ ...

java自定义类型 作为HashMap中的Key值 (Pair&lt&semi;V&comma;K&gt&semi;为例)

由于是自定义类型,所以HashMap中的equals()方法和hashCode()方法都需要自定义覆盖. 不然内容相同的对象对应的hashCode会不同,无法发挥算法的正常功能,覆盖equals方法, ...

Java - HashMap分别按Key和Value进行排序

我们都知道,Java中的Map结构是key->value键值对存储的,而且根据Map的特性,同一个Map中 不存在两个Key相同的元素,而value不存在这个限制.换句话说,在同一个Map中Ke ...

使用HashMap,如果key是自定义的类,就必须重写hashcode&lpar;&rpar;和equals&lpar;&rpar;

java编程里有关约定:如果两个对象根据equals方法比较是相等的,那么调用这两个对象的任意一个hashcode方法都必须产生相同的结果. hashcode()和equals()都继承于object ...

随机推荐

JPA 批量新增

1. 在实现类 增加 EntityManager 注入 private EntityManager em; @PersistenceContext(name = "EntityManager ...

深入理解inode与软硬链接

一.inode是什么? 理解inode,要从文件储存说起. 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector).每个扇区储存512字节(相当于0.5KB). 操作系统 ...

【CSDN博客之星】2013年CSDN博客之星正在评选,希望大家支持,非常感谢!

首先在此感谢 MoreWindows 秒杀多线程面试题系列让我成长和学习,同时也借鉴了很多优秀观点和示例! 请各位读者可以支持MoreWindows,让更优秀的文章陪伴我们! 各位读者好, 本人博客自 ...

【C&plus;&plus;基础】关键字static 局部变量

1.局部变量 static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值: int test(int j){ static int i=10; i=i+j ...

FZU 1753

题目的思路还是很简单的,找出这些组合数中最大的公约数: 其中C(n,k)=n ! /k!/(n-k)! 所以枚举每个素因数,用(n!)的减去(k!)和(n-k)!的就行了... 最后取每组的最小值 # ...

Linux多线程实践&lpar;7&rpar; --多线程排序对比

屏障 int pthread_barrier_init(pthread_barrier_t *restrict barrier, const pthread_barrierattr_t *restri ...

&lbrack;AGC001 E&rsqb; BBQ Hard

Description 有\(N(N\leq 200000)\)个数对\((a_i,b_i)(a_i,b_i,\leq 2000)\),求出\(\sum\limits_{i=1}^n\sum\limi ...

leetCode 典型回溯例子

39题,翻译题目:给定一组候选集和一个目标值,在c的所有组合中,找出所有总和等于T的组合. 候选数组c中同一个数可以被选择多次(不限次数) 分析: 典型的回溯法应用 对数组里面的每个数,用递归的方式相 ...

《算法》第四章部分程序 part 11

▶ 书中第四章部分程序,包括在加上自己补充的代码,二分图的判定和染色 ● 二分图 1 //+------------------------------------------------------ ...

R中的空间数据分析

> library(sp) > library(maptools) > library(raster) > library(rgeos) > maxd3 = readAs ...