Antecedentes: hay listados de productos página y tengo que agarrar todos el nombre del producto (incluyendo fuera de stock de producto) y luego tener que verificar que todo fuera de stock de productos están en el final.
Problema: he navegado toda la página y a guardar los nombres de los productos en un ArrayList.
Digamos que list1
y los contenidos son -
[instant bcaa, vegan bcaa, complete bcaa energy™, branched chain amino acid (bcaa) tablets 1000mg, endure™, branched chain amino acids (bcaa), instant leucine, leucine tablets 1000mg, complete intra-workout™, leucine, bcaa jelly mix, complete hydration drink™, informed bcaa™, instant bcaa cocktail bundle]
Ahora tengo otra lista que tienen solamente no disponible Producto
list2
y los contenidos son -
[informed bcaa™, instant bcaa cocktail bundle]
Tengo que hacer seguro de si lista1 tiene todos los elementos list2 en el final de misma secuencia
Este problema se esencialmente intentar validar que una lista dada A
, extremos con una segunda lista B
.
Se podría aplicar esto determinando la longitud de la lista B
, dando marcha atrás que muchos espacios desde el final de la lista A
, y luego hacer una comparación por pares de las dos listas:
public static boolean listEndsWith(List<?> A, List<?> B) {
if (B.size() > A.size()) {
return false;
}
for (int i = A.size() - B.size(), j = 0; i < A.size(); i++, j++) {
if (!A.get(i).equals(B.get(j))) {
return false;
}
}
return true;
}