下面是我的课。insertSymbol 方法应该将一个对象添加到链接列表中,然后将其添加到哈希表中。但是当我打印哈希表的内容时,它有双重条目。我试图通过使用“if(temp.contains(value)){return;}”来纠正这个问题,但它不起作用。我读到我需要在几个地方使用@override。谁能帮我知道如何以及在哪里使用覆盖?谢谢!
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);
}
}