如何将关联值添加到已有键的地图中?
How can I add an associated value to a map that already has a key?
我有一个 Map<Character, String>
,它已经根据 for 循环获取了键(字符)的值。我现在如何通过这个地图并检查某个键是否在这个地图中(例如 'A' 或 'a' [因为忽略大小写]),然后将我想要的值(例如 4)添加到这个键(所以从“A=”变成“A=4”)?
我希望我的问题很清楚
这是我现在的代码:
public static Map<Character, String> replacings(String s) {
Map<Character, String> leetMap = new TreeMap<>();
for(int i = 1; i < s.length(); i++) {
if(s.charAt(i) == '=') {
leetMap.put(s.charAt(i - 1), "");
leetMap.put(s.toLowerCase().charAt(i - 1), "");
}
}
for(int j = 0; j < leetMap.size(); j++) {
//look for the key here and then add a value to it [my problem]
}
return leetMap;
}
我的主要方法(示例):
Map<Character, String> mappings = replacings(
"A=4,B=8,E=3,G=6,L=1,O=0,S=5,T=7,Z=2,"
);
所以现在,我想将数字添加到键中。
您可以像这样使用 entrySet
遍历地图:
for(Map.Entry<Character, String> entry : leetMap.entrySet()) {
if(e.getKey() == 'A') {
//things
}
}
但真正的问题是为什么您希望这发生在不同的循环中?为什么在添加key的时候不把value同时添加到map中?
我的尝试是这样的:
private static Map<Character, String> replacings(String s) {
Map<Character, String> leetMap = new TreeMap<>();
String[] splitted = s.split(",");
for (String kv : splitted) {
String[] kvsplit = kv.split("=");
leetMap.put(kvsplit[0].charAt(0), kvsplit[1]);
leetMap.put(kvsplit[0].toLowerCase().charAt(0), kvsplit[1]);
}
return leetMap;
}
这会打印:
{A=4, B=8, E=3, G=6, L=1, O=0, S=5, T=7, Z=2, a=4, b=8, e=3, g=6, l=1, o=0, s=5, t=7, z=2}
我有一个 Map<Character, String>
,它已经根据 for 循环获取了键(字符)的值。我现在如何通过这个地图并检查某个键是否在这个地图中(例如 'A' 或 'a' [因为忽略大小写]),然后将我想要的值(例如 4)添加到这个键(所以从“A=”变成“A=4”)?
我希望我的问题很清楚
这是我现在的代码:
public static Map<Character, String> replacings(String s) {
Map<Character, String> leetMap = new TreeMap<>();
for(int i = 1; i < s.length(); i++) {
if(s.charAt(i) == '=') {
leetMap.put(s.charAt(i - 1), "");
leetMap.put(s.toLowerCase().charAt(i - 1), "");
}
}
for(int j = 0; j < leetMap.size(); j++) {
//look for the key here and then add a value to it [my problem]
}
return leetMap;
}
我的主要方法(示例):
Map<Character, String> mappings = replacings(
"A=4,B=8,E=3,G=6,L=1,O=0,S=5,T=7,Z=2,"
);
所以现在,我想将数字添加到键中。
您可以像这样使用 entrySet
遍历地图:
for(Map.Entry<Character, String> entry : leetMap.entrySet()) {
if(e.getKey() == 'A') {
//things
}
}
但真正的问题是为什么您希望这发生在不同的循环中?为什么在添加key的时候不把value同时添加到map中?
我的尝试是这样的:
private static Map<Character, String> replacings(String s) {
Map<Character, String> leetMap = new TreeMap<>();
String[] splitted = s.split(",");
for (String kv : splitted) {
String[] kvsplit = kv.split("=");
leetMap.put(kvsplit[0].charAt(0), kvsplit[1]);
leetMap.put(kvsplit[0].toLowerCase().charAt(0), kvsplit[1]);
}
return leetMap;
}
这会打印:
{A=4, B=8, E=3, G=6, L=1, O=0, S=5, T=7, Z=2, a=4, b=8, e=3, g=6, l=1, o=0, s=5, t=7, z=2}