将非重复字符串添加到节点列表

时间:2015-10-14 01:13:25

标签: java list nodes

所以我有这个代码。我将一个名为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;

   };

}

0 个答案:

没有答案