所以我有这个代码。我将一个名为tmpListvar的列表中的一些元素添加到名为listavar的新列表中,我想知道如何在向listavar添加新元素时检查重复项。
例如,如果我有" ax" (tmpListvar)元素X,Y和Z然后在第一次到达时将它们添加到listvar(没有重复),没有问题,但在第二次到达时我添加A,X和C应该找到重复的X,因为它是已添加到第一个后面(当我添加X,Y,Z时)下面的代码可以在一次运行中被调用不同的时间。
tmpListVar ax = tmpCabeza;
while(ax != null) {
NodoSem1 listavar = new NodoSem1(ax.palabra,p.token); // Here, im adding to listavar: ax.palabra (from tmpListVar) and p.token (from another node list)
if(NodoSem1Cabeza == null) {
NodoSem1Cabeza = listavar;
NodoSem1P = NodoSem1Cabeza;
} else {
if (ax.palabra.equals(listavar.Id)) { //Here is where I check if the string from listavar is duplicate, im comparing it with the list wich I added the elements, the problem is that even if im not adding duplicate elements, it marks like im adding duplicates.
System.out.println("VARIABLE DUPLICADA");
System.exit(0);
}
NodoSem1P.sigui=listavar;
NodoSem1P = listavar;
}
ax = ax.siguiente;
}
希望你们能理解我,我不太擅长英语。感谢。
修改
tmpListVar nodoTmp = new tmpListVar(p.palabra);
if(tmpCabeza==null){
tmpCabeza=nodoTmp;
tmpP=tmpCabeza;
}else{
tmpP.siguiente=nodoTmp;
tmpP = nodoTmp;
}
以下是两个声明的类
class tmpListVar {
String palabra;
tmpListVar siguiente;
int tipo;
tmpListVar(String palabra) {
this.palabra = palabra;
}
}
class NodoSem1 {
String Id;
int tipo;
NodoSem1 sigui=null;
NodoSem1(String Id, int tipo){
this.Id = Id;
this.tipo = tipo;
};
}