【发布时间】:2016-04-07 19:21:05
【问题描述】:
这是我的代码。我为草率道歉,但本质上它应该做的是模拟交换机使用的向后学习算法。 handleInput 方法接收 src 和 dest MAC 地址和端口号,并将 src MAC 和端口# 作为 HashMaps 添加到 ArrayList 中。整个方法现在没用,因为由于某种原因,没有一个 HashMaps 留在 ArrayList 中。非常感谢任何帮助!
public class Switching {
ArrayList<HashMap> switchTable = new ArrayList<HashMap>();
public String handleInput(String srcMacAddress, int portNumber, String destMacAddress){
String output = "";
HashMap tableEntry = new HashMap();
tableEntry.put(srcMacAddress, portNumber);
for (HashMap hm : switchTable) {
if (hm.containsKey(destMacAddress)) {
output += hm.get(destMacAddress).toString();
} else {
output += "Ports flooded";
}
}
switchTable.add(tableEntry);
return output;
}
public ArrayList<HashMap> getTable(){
return switchTable;
}
public class SwitchingTests {
@Test
public void testSwitching(){
new Switching().handleInput("123456", 12, "abcdef");
ArrayList<HashMap> switchingTable = new Switching().getTable();
Assert.assertEquals(switchingTable.toString(), "[{123456=12}]");
}
}
【问题讨论】:
-
好吧,该方法的第一条指令将 switchTable 替换为一个新的空表......另外,不要使用原始类型。应该是
List<Map<String, Integer>>。 -
您能否添加更多代码来使用该类以及预期的输出?