It's my first time at Stackoverflow and I hope you can help me. I'm in Java courses and we're in the list creation part, I have this class (List.java) which contains the following:
public class Lista{
Node inicio;
int tamanio=0;
/** se procede a crear una lista vacia**/
public Lista(){
inicio=null;
}
public boolean esVacia(){
return(inicio==null);
}
//insercion de elementos a la Lista
public void agregarAlFinal(int valor){
//se crea una nueva variable de tipo Node
Node nuevo = new Node();
//se le agrega un valor al nodo creado
nuevo.setDato(valor);
//se verifica si la lista esta esVacia
if (esVacia()) {
//si la lista esta vacia...el nodo ingresado pasara a ser el inicio de la misma
inicio = nuevo;
//de lo contrario, se tiene que recorrer la lista hasta el ultimo nodo ingresado
//y de ahi se agrega el nuevo
} else {
// se crea una copia de la Lista
Node aux = inicio;
//se usa un while para recorrer la lista hasta encontrar el final
//se usa la copia del nodo original para esto
while(aux.getLink() != null){
//la copia del nodo pasa a ser el nodo siguiente
aux = aux.getLink();
}
//se agrega el nuevo nodo al final de la Lista
aux.setLink(nuevo);
}
//se incrementa el tamanio de la Lista
tamanio++;
}
//metodo para ingresar un nodo al inicio de la Lista
public void agregarAlInicio(int valor){
//se define un nuevo nodo
Node nuevo = new Node();
//se le agregar valor al nodo
nuevo.setDato(valor);
//se verifica si esta vacia la Lista
if (esVacia()) {
//si esta vacia, el nodo ingresado sera el inicio de la Lista
inicio = nuevo;
//de lo contrario, el nodo ingresado sera ingresado antes que el agregarAlInicio
//para convertirse en el nuevo inicio
} else {
//une el nodo ingresado con la lista existente
nuevo.setLink(inicio);
//se renombra el nodo ingresado como el inicio de la Lista
inicio=nuevo;
}
//se incrementa la Lista
tamanio++;
}
//metodo para encontrar el valor que esta dentro de una posicion dada en la Lista
public int getValor(int posicion){
//hay que verificar que la posicion que se manda es mayor o igual que el indice 0 y menor que el numero de
//elementos que hay en la Lista
if (posicion>=0 && posicion<= tamanio) {
//hay que consultar si la posicion que se mando es el inicio de la Lista
if (posicion==0) {
//si es asi, retorna el valor del inicio de la Lista
return inicio.getDato();
//de lo contrario
} else {
//se crea una copia de la Lista
Node aux = inicio;
//se recorre la lista hasta la posicion que se mando
for (int i=0;i<posicion-1 ;i++ ) {
//la copia del nodo pasa a ser el nodo siguiente
aux = aux.getLink();
}
//retorna el valor del nodo
return aux.getDato();
}
//si la posicion enviada no esta en la lista, devuelve un valor no valido en la Lista
} else {
return -10000;
}
}
//metodo para encontrar el numero de indice de un valor que ya esta dentro de la Lista
public boolean buscar(int referencia){
//crear una copia de la Lista
Node aux = inicio;
//se crea una variable de tipo booleano para ver si el valor existente
//y se inicializa en falso
boolean encontrado = false;
//se recorre la lista hasta encontrar el elemento que se solicito o hasta llegar
//al final de la Lista
while(aux !=null && encontrado != true){
//se verifica si el valor ingresado que esta representado como "referencia"
//es igual al valor del encontrado
if (referencia == aux.getDato()) {
//cambia el valor de la variable encontrado
encontrado=true;
}//de lo contrario se avanza al siguiente nodo
else {
aux =aux.getLink();
}
}
//retorna el resultado de la variable encontrado
return encontrado;
}
//metodo para eliminar un elemento de la lista en base al dato que contiene (por referencia)
public void removerPorReferencia(int referencia){
//se consulta si el valor de referencia esta en la Lista
if (buscar(referencia)) {
//si el valor se encuentra una vez ejecutado el metodo buscar(referencia),
//se tiene que consultar si el nodo a eliminar es el primero
if (inicio.getDato()==referencia) {
//entonces el primer nodo apuntaria al siguiente nodo
inicio = inicio.getLink();
//de lo contrario se creara una copia de la lista para poder trabajar en la copia
} else {
Node aux = inicio;
//se tiene que recorrer la lista hasta llegar al nodo que esta antes del ingresado
//como referencia
while(aux.getLink() != referencia ){
aux = aux.getLink();
}
//Guarda el nodo siguiente del nodo a eliminar
Node siguiente = aux.getLink().getLink();
//enlaza el nodo anterior al que se va a eliminar con
//el siguiente despues del que se va a eliminar
aux.setLink(siguiente);
}
//disminuye el tamanio de la Lista
tamanio--;
}
}
public void print(){
Node aux = inicio;
for (int i=0;i<tamanio ;i++ ) {
System.out.println(aux.data);
aux=aux.link;
}
}
}
The problem is that when compiling it, it indicates an error because it does not recognize the getValor()
method within the removerPorReferencia()
method. It gives me the following:
error: can not find symbol while (aux.getLink (). getValor ()! = reference) { ^ symbol: method getValor () location: class Node 1 error
the method getValor()
I can call it within other methods without problem and returns values without problem.
What could be happening?
Thank you in advance for the help