Finding element in java LinkedList
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Jakub Matousek
el 16 de Nov. de 2016
Comentada: Jakub Matousek
el 17 de Nov. de 2016
Is there a way to get index of any vector+the vector, that has 1 on first index and 2 on second index? So in this case it would return [1 2 3 4] and 1. So I can remove it after, when for example last digit is 4...(Trying to implement DFS AI method for solving the decanting puzzle, could do it without linked list, but using linkedlist would make it more fun for me to write...)
open = java.util.LinkedList;
open.add([1 2 3 4]);
open.add([2 3 4 5]);
2 comentarios
Geoff Hayes
el 16 de Nov. de 2016
Jakub - open is a built-in MATLAB function name, so you may want to rename your above variable to avoid conflicting with this function.
Also, please clarify what you mean by ...vector+the vector... Are you adding the two vectors? How does this example return both [1 2 3 4] and 1?
Respuesta aceptada
Geoff Hayes
el 17 de Nov. de 2016
Jakub - if you just want to compare each element in your linked list to a specific array, checking to see if the first n elements match those of the array, then you could try something like
myList = java.util.LinkedList;
myList.add([1 2 3 4]);
myList.add([2 3 4 5]);
myList.add([1 2 3 4 5 6 7 8]);
myList.add([1 2]);
myList.add([1 2 3]);
dataToCompare = [1 2 3]';
for k=0:myList.size() -1
element = myList.get(k);
if length(element) >= length(dataToCompare)
if all(element(1:length(dataToCompare)) == dataToCompare)
fprintf('Found a match at %d!\n',k);
end
end
end
The output for the above would be
Found a match at 0!
Found a match at 2!
Found a match at 4!
indicating a match on the [1 2 3].
Más respuestas (0)
Ver también
Categorías
Más información sobre Startup and Shutdown en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!