Bom dia pessoal. Estou com uma dúvida hoje, uma dúvida teórica. É o seguinte:
Uma lista duplamente encadeada pode ser construída da mesma maneira que uma lista simplesmente encadeada considerando o uso de iteradores? Justifique sua resposta.
Eu sei que posso, porém não consigo achar um meio de justificar a minha resposta. É uma questão de revisão para minha prova. Quem puder me ajudar, e explicar o porque, fico muito agradecido! Agradeço desde já!
Fiquei interessado em saber a resposta agora rsrs… para mim os iterators eram somente um pattern para você percorrer uma lista, por exemplo no Java você tem a interface Iterator<?> que percorre objetos, mas só para a frente… uma lista duplamente ligada tem a ligação do anterior para o próximo e do próximo para o anterior, certo ? No Iterator do Java não dá para fazer o caminho reverso…
Fiquei curioso
Pois é. Acabei ficando na dúvida, meu professor chegou a comentar alguma coisa, mas bem por cima e preciso tirar essa dúvida, pois a prova é hoje =/
A classe listIterator é a implementação de uma lista duplamente encadeada, pois tem métodos para ir para a frente e para trás
http://docs.oracle.com/javase/1.4.2/docs/api/java/util/ListIterator.html
Daí acho que o tipo de iterator que você usa é que vai definir o tipo da lista.
Então na verdade o tipo de Iterador que eu for usar é que vai dizer o tipo de lista que será criada? É basicamente isso?
Iterator é um pattern que se usa para percorrer os elementos de um objeto. Se você criar uma interface por exemplo que percorra de trás para frente, de frente para trás, então as classes que a implementam terão que ter essas funcionalidades, logo, depende rsrs…
Eu acho que linkedList e a implementação de lista duplamente encadeada.
http://docs.oracle.com/javase/1.4.2/docs/api/java/util/LinkedList.html
Pelo menos na documentação diz que os métodos executam como o esperado de uma lista duplamente encadeada.
“All of the operations perform as could be expected for a doubly-linked list”
O ArrayList vi uma vez falando da implementação dele e na verdade é por um array.