İşte kodum. Sloganlıktan ötürü özür dilerim ama esasen yapması gereken şey, anahtarlar tarafından kullanılan geriye doğru öğrenme algoritmasını simüle etmektir. HandleInput yöntemi, src ve dest MAC adreslerini ve bir port numarasını alır ve src MAC ve port #'u HashMaps olarak bir ArrayList'e ekler. Şu anda tüm yöntem işe yaramıyor çünkü HashMaps’lerin hiçbiri ArrayList’te bir nedenden ötürü kalmıyor. Herhangi bir yardım çok takdir edilir!ArrayList <HashMap> testlerde ve kullanıcı arayüzünde boş geri mi dönüyor?
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}]");
}
}
Peki, yöntemin ilk talimatı switchTable'ı yeni bir boş alan ile değiştirir ... Ayrıca, ham türleri kullanmayın. Bir liste> olmalıdır. –
Sınıfı ve beklenen çıkışı kullanarak başka kod ekleyebilir misiniz? –