contienecontiene()El método contiene() es muy sencillo.
Su objetivo es verificar si un valor existe o no dentro de la lista.
➡️ null
primero → 🟨10
último → 🟩30
Buscaremos si la lista contiene(10) y luego contiene(40).
➡️ null
🔍 Buscando valor: 10
✅ Coincidencia encontrada.
El método devuelve true ✔️
➡️ null
🔍 Buscando valor: 40
❌ No se encontró el valor.
Se devuelve false.
✅ 10 sí existe en la lista. ❌ 40 no existe.
Pero… 🧩 ya escribimos esa lógica en indiceDe().
indiceDe()No necesitamos duplicar el código. Podemos reutilizar nuestro método indiceDe().
✔️ Si indiceDe(item) devuelve cualquier número distinto de -1, significa que el valor existe en la lista.
public class Main {
public static void main(String[] args) {
var list = new ListaEnlazada();
list.agregarAlFinal(10);
list.agregarAlFinal(20);
list.agregarAlFinal(30);
System.out.println(list.indiceDe(30));
System.out.println(list.contiene(10)); // true
System.out.println(list.contiene(40)); // false
}
}public class ListaEnlazada {
private class Nodo {
private int value;
private Nodo next;
public Nodo(int value) {
this.value = value;
}
}
private Nodo primero;
private Nodo ultimo;
public void agregarAlInicio(int item) {
var nodo = new Nodo(item);
if (estaVacia()) {
primero = ultimo = nodo;
} else {
nodo.next = primero;
primero = nodo;
}
}
private boolean estaVacia() {
return primero == null;
}
public void agregarAlFinal(int item) {
var nodo = new Nodo(item);
if (primero == null) {
primero = ultimo = nodo;
} else {
ultimo.next = nodo;
ultimo = nodo;
}
}
public int indiceDe(int item) {
var actual = primero;
int indice = 0;
while (actual != null) {
if (actual.value == item)
return indice;
actual = actual.next;
indice++;
}
return -1;
}
public boolean contiene(int item) {
return indiceDe(item) != -1;
}
}