java - 在 Java 中构建一个由 A 和 B 的列标签组成的新地图
问题描述
构建并返回一个新映射,使得新映射包含来自labelsFromA 的所有键和来自labelsFromB 的所有键。新映射将每个键发送到一个整数索引。如果有 n 个键,则从 0 到 n-1 的每个整数索引都使用一次。
private static Map<String, Integer> joinLabels(Map<String, Integer> labelsFromA, Map<String, Integer> labelsFromB){
Map<String, Integer> map = new HashMap<String,Integer>();
return null;
}
解决方案
这应该有帮助:
private static Map<String, Integer> joinLabels(Map<String, Integer> labelsFromA, Map<String, Integer> labelsFromB){
Map<String, Integer> map = new HashMap<String,Integer>();
int i = 0;
for(String key : labelsFromA.keySet()){
if(!map.containsKey(key)){
map.put(key, i++);
}
}
for(String key : labelsFromB.keySet()){
if(!map.containsKey(key)){
map.put(key, i++);
}
}
return map;
}
我所做的就是遍历两个地图的键集。如果新地图不包含当前迭代中的键,那么我将其插入到地图中,其值为 i 并具有后增量。
不过,根据您的问题,实际的解决方案应该是这样的:
private static Map<String, Integer> joinLabels(Map<String, Integer> labelsFromA, Map<String, Integer> labelsFromB){
Map<Integer, String> map = new HashMap<String,Integer>();
int i = 0;
for(String key : labelsFromA.keySet()){
if(!map.containsValue(key)){
map.put(i++, key);
}
}
for(String key : labelsFromB.keySet()){
if(!map.containsValue(key)){
map.put(i++, key);
}
}
return map;
}
因为每个键都需要根据您的问题存储在数字索引中!!
推荐阅读
- r - 传单“无法推断 lng 列”,但 df 显示加载的 lat 和 lng 列
- java - 如何在不拆分字符串的情况下检查字符串是否具有某种模式?
- javascript - 如何管理流以处理 node.js 中的传入数据
- laravel - Carbon::parse 获取日期
- javascript - 如何从按钮增加java脚本函数中的全局变量?
- ssh - 如何在 Github Actions 中使用 ssh 身份文件
- javascript - 未选中的 Vuetify v-checkbox 图标没有为 Font Awesome 4 应用正确的类
- dictionary - 是否可以创建一个可以验证哈希图/字典而不是对象的 JSON 模式?
- c++ - 我的叉子输出不正确
- c++ - 使用单个 makefile 编译 C 和 C++