我的地图为Map<String,String>
条目类似于map.put("c_09.01--x28", "OTH")
。在此我使用拆分密钥并使用x28
将其更改为OTH
。所以我的问题是我是应该使用拆分操作还是在地图中使用地图和map.put("c_09.01", newMap)
newMap将map.put("x28", 'OTH')
。哪一个会给我更好的表现?我使用过的示例代码是
for (Entry<String,String> sheetEntry : this.getSheetCD().getUserDefinedSheetCodeMap().entrySet()) {
String Key = sheet.getKey().split("--")[1];
int sheetIndex = template.getSheetIndex(sheetKey);
if(sheetEntry.getKey().toUpperCase().startsWith(getFileName()){
String newSheetName = sheetEntry.getValue();
template.setSheetName(sheetIndex, newSheetName);
}
}
如果需要更多信息,请与我们联系。问候。
答案 0 :(得分:0)
您应该使用拆分操作,因为如果您正在使用拆分操作,那么在iteration
地图对象时,您可以使用单iterate
forEach loop
值。
示例代码
String str[] = "c_09.01--x28".split("--")[1];
Map<String, String> map = new HashMap<>();
map.put(str, "OTH");
for(Map.Entry eMap:map.entrySet()){ //single forEach loop
System.out.println("Key : "+eMap.getKey());
System.out.println("Value : "+eMap.getValue());
}
<强>输出强>
Key : x28
Value : OTH
如果你使用map.put("c_09.01", newMap);
这个,那么你需要iterate
两次。首先,您需要iterate
newMap
使用密钥c_09.01
,而不是需要iterate
OTH
使用密钥x28
。
示例代码
String str[] = "c_09.01--x28".split("--");
Map<String, String> map = new HashMap<>();
map.put(str[1], "OTH");
Map<String, Map> map1 = new HashMap<>();
map1.put(str[0], map);
for(Map.Entry eMap : map1.entrySet()){ //First forEach Loop
System.out.println("Key : "+eMap.getKey()); //getiing key "c_09.01"
Map<String, String> map2 = (Map<String, String>) eMap.getValue(); //getting map and need to be cast because it return object type
for(Map.Entry eMap1 : map2.entrySet()){ // Second forEach loop
System.out.println("Key Using map.put(String, newMAp) : "+eMap1.getKey());
System.out.println("ValueUsing map.put(String, newMAp) : "+eMap1.getValue());
}
}
<强>输出强>
Key : c_09.01
Key Using map.put(String, newMAp) : x28
ValueUsing map.put(String, newMAp) : OTH
所以我想你应该使用拆分操作。