O escopo e o relacionamento do iterador e listiterator:
(1) O iterador pode ser usado para implementar a lista de interface iterativa ArrayList, LinkedList, mapa, etc.
(2) O listiterator, como o nome indica, é usado para iterar a lista para implementar o ArrayList e o LinkedList.
(3) Como pode ser visto no código -fonte ou documentação da API, o iterador é a classe pai do listiterator.
Listiterator de interface pública <e> estende o iterador <E> {// omita ...}Novos métodos foram adicionados ao listiterator.
Análise da instância de posição do cursor implícita do iterador:
Conforme mostrado na figura acima, existem quatro elementos A, B, C, D na lista de coleções em que o iterador é para iterar. Quando o método xxx.iterator () ou xxx.ListIterator () é chamado,
O iterador aponta para a posição de iterator_one e quando o método xxx.next () é chamado, a posição do iterador aponta para a posição Iterator_two.
A posição que o iterador aponta não é diretamente oposta ao elemento, mas entre os elementos.
Métodos no iterador e listiterator:
------ Método no iterador:
Resumo dos métodos oficiais da API:
Análise de método:
hasNext (): determina se existe um elemento na próxima posição apontada pelo iterador do elemento na coleção. Retorne verdadeiro, caso contrário, retorne falso
Em seguida (): Retorna o valor do próximo elemento na posição apontada pelo iterador.
Remova (): Remova o valor removido pelo iterador através do iterador.
------ Método no Listiterator:
Resumo dos métodos oficiais da API:
Análise de método:
Adicione (EE): Insira um elemento especificado na coleção. A posição de inserção está relacionada ao método da última operação a seguir () ou anterior ().
Se a última operação for a seguir (), o elemento será inserido após o elemento removido a seguir e se for anterior (), o elemento será inserido antes do elemento removido.
hasNext (): Quando o conjunto é percorrido em ordem positiva, determina se existe o próximo elemento apontado pelo cursor implícito. Se existir, retornará verdadeiro, caso contrário, retorna falsa.
HasPrevious (): Quando o conjunto é percorrido reverso, ele determina se existe o elemento anterior do cursor implícito. Se existir, retornará verdadeiro, caso contrário, retorna falsa.
Em seguida (): Retorna o próximo valor do elemento na posição apontada pelo cursor implícito.
NextIndex (): Retorna o valor do índice do próximo elemento na posição apontada pelo cursor implícito.
anterior (): retorna o valor do elemento anterior na posição apontada pelo cursor implícito.
anteriorIndex (): retorna o valor do índice do elemento de posição anterior apontado pelo cursor implícito.
Remover (): Excluir elementos da coleção não é excluir todos os elementos, mas excluir os elementos retornados pela última operação a seguir () ou anterior ().
Se o próximo () ou anterior () não retornar um valor, um erro será relatado.
set (ee): substitua o elemento retornado por next () ou anterior () por e na lista. Por exemplo, se o próximo () for retirado como um, você poderá substituir um por um por conjunto.
Exemplo 1:
pacote com.lanhuigu.java; importar java.util.ArrayList; importar java.util.list; importar java.util.ListIterator; public class ListiteratorApitest {public static void main (string [] args) {list <string> list = novo ArrayList <String> (); list.add ("a"); list.add ("b"); list.add ("c"); list.add ("d"); // Neste momento, o iterator aponta para o iterador de Iterator_one, o Iterator = listiter = listiterator ();); listiterator.Next (); // exclua o elemento listiterator.remove (); // exclua o elemento recuperado pelo próximo. Neste momento, A foi excluído da coleção. Adicionar elemento // listiterator.previous (); listiterator.add ("e"); // antes de apontar para a posição iterator_two, é a posição anterior // imprima o elemento recuperado pelo próximo. System.out.println ("FirstElement:" + FirstElement); // reinacionam a posição apontadora para a posição ITERATOR_ONE, mas A não foi excluído e adicione e listiterator = list.ListIterator (); while (listiterator.hasnext ()) {System.out.println (listiterator.next ());} System.out.println ("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- list.ListIterator ();Exemplo 2:
pacote com.lanhuigu.java; importar java.util.ArrayList; importar java.util.iterator; importar java.util.list; importar java.util.Listiterator; public class iteratorapitest {public static void main (string [] args) {list <string> list = list = list = novo Arraylist <String> (); list.add ("a"); list.add ("b"); list.add ("c"); list.add ("d"); // A primeira maneira de atravessar o conjunto é atravessar diretamente as instruções de loop (para, do-while, enquanto) // para (string e: listar) {System.out.println (e);} System.out.println ("------------------"); // A segunda maneira de atravessar o set (iterator) iterator <string> iterator = list.iterator (); enquanto (iterator.hasNext ()) {System.out.println (iterator.next ());} system.out.println ("---------------------------"); // a terceira maneira de atravessar o set (listiterator) listiterator <string> listiterator = list.Listiterator (); while (listiterator.hasnext ()) {System.out.println (listiterator.next ());} System.out.println ("-----------------");}}Resumir
O exposto acima é toda a explicação detalhada dos exemplos de iterador e listiterator em Java. Espero que seja útil para todos. Amigos interessados podem continuar se referindo a outros tópicos relacionados neste site. Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio para este site!