我将值放在TreeMap
中,如下所示:
if (hdr.getName().equalsIgnoreCase("Ip4")) {
map.put(1, f);
} else if (hdr.getName().equalsIgnoreCase("ethernet")) {
map.put(2, f);
} else if (hdr.getName().equalsIgnoreCase("tcp")) {
map.put(3, f);
} else
if (hdr.getName().equalsIgnoreCase("udp")) {
map.put(4, f);
}
我试图使用以下方法检索它:
Iterator < Map.Entry < Integer, Field >> entries = map2.entrySet().iterator();
while (entries.hasNext()) {
Map.Entry < Integer, Field > entry = entries.next();
if ((entry.getKey() == 1)) {
stringBuilder.append(entry.getValue().getSource());
stringBuilder.append(",");
stringBuilder.append(entry.getValue().getDestination());
} else if ((entry.getKey() == 2)) {
stringBuilder.append(entry.getValue().getSource());
stringBuilder.append(",");
stringBuilder.append(entry.getValue().getDestination());
} else if ((entry.getKey() == 3)) {
stringBuilder.append(entry.getValue().getSource());
stringBuilder.append(",");
stringBuilder.append(entry.getValue().getDestination());
} else if ((entry.getKey() == 4)) {
stringBuilder.append(entry.getValue().getSource());
stringBuilder.append(",");
stringBuilder.append(entry.getValue().getDestination());
}
}
现在,我想要的输出是如果找不到任何键,它应该放在其他部分(我没有包含在这里,因为我没有得到所需的输出)并且它应该追加
stringBuilder.append(,,);
例如
If key 1 contains 12,13
If key 2 is not present ,,
If key 3 contains 10,11
If key 4 contains 14,15
所以希望的出局应该是
12,13,,10,11,14,15
请帮助我解决逻辑问题,因为我正在打破这个问题。
由于
答案 0 :(得分:0)
感谢大卫提示,我用
解决了这个问题 for (int i=1 ; i<=map2.size()+1; i++){
if(map2.containsKey(i))
{
//appendString(map2.get(i));
stringBuilder.append(map2.get(i).getSource());
stringBuilder.append(",");
stringBuilder.append(map2.get(i).getDestination());
}
else{
stringBuilder.append(",,");
}
}