下面是我的課。 insertSymbol方法應該將對象添加到鏈接列表中,然後將其添加到散列表中。但是當我打印哈希表的內容時,它有兩個條目。我試圖通過使用「if(temp.contains(value)){return;}」來解決這個問題,但它不起作用。我讀過我需要在幾個地方使用@override。任何人都可以幫助我知道如何以及在何處使用覆蓋?謝謝!在Java中,如何檢查對象是否在鏈接列表中?
import java.util.*;
public class Semantic {
String currentScope;
Stack theStack = new Stack();
HashMap<String, LinkedList> SymbolTable= new HashMap<String, LinkedList>();
public void insertSymbol(String key, SymbolTableItem value){
LinkedList<SymbolTableItem> temp = new LinkedList<SymbolTableItem>();
if(SymbolTable.get(key) == null){
temp.addLast(value);
SymbolTable.put(key, temp);
}else{
temp = SymbolTable.get(key);
if(temp.contains(value)){
return;
}else{
temp.addLast(value);
SymbolTable.put(key, temp);
}
}
}
public String printValues(){
return SymbolTable.toString();
}
public boolean isBoolean(){
return true;
}
public boolean isTypeMatching(){
return true;
}
public void stackPush(String theString){
theStack.add(theString);
}
}
對於諸如「symbolTable」的變量,您應該使用小寫字母,因爲我們都習慣以這種方式讀取Java。它的標準慣例。 –
順便說一句,你可以做什麼,而不是'map.get(key)!= null'是使用'map.containsKey(key)' –
謝謝你的洞察力。學習這些東西很好。一些標識符,例如SymbolTable,由教授給出,所以我嘗試使用它們。 – bstrong