Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 13604|Resposta: 0

[JavaSE] Travessia da coleção de listas em Java e análise comparativa de duas classes de implementação

[Copiar link]
Publicado em 04/01/2015 13:29:38 | | |
[mw_shl_code=java,true]pacote com.sort;  
  
importar java.util.ArrayList;  
importar java.util.Iterator;  
import java.util.List;  
  
/**
* Três tipos de percurso da lista
* @author Proprietário
*
*/  
classe pública ListTest {  
  
    public static void main(String[] args) {  
         
        <String> Lista lista = nova ArrayList<String>();  
         
        list.add("a");  
        list.add("b");  
        list.add("c");  
        list.add("c"); Dados duplicados podem ser adicionados  
         
        Método de travessia 1  
        for(Iterator<String> iterator = list.iterator(); iterator.hasNext(); ){  
            Valor da string = iterator.next();  
              
            System.out.println(valor);  
        }  
         
        Método de deslocamento 2  
        for(String valor : list){  
            System.out.println(valor);  
        }  
         
        Método de deslocamento 3  
        for(int i=0; i<list.size(); i++){  
            System.out.println(list.get(i));  
        }  
         
    }  
} [/mw_shl_code]


Análise comparativa das três travessias:

Travessia do Método 1:

Durante a execução, o bloqueio de dados será realizado, o desempenho será um pouco pior e, se você quiser remover um elemento durante o loop, só pode chamar o método it.remove.   

Travessia do Método 2:

Chame o primeiro tipo internamente

Método 3: Travessia:

Não é travado internamente, o que é o mais eficiente, mas ao escrever multithreading, o problema das operações concorrentes deve ser considerado

As duas principais implementações da interface List, ArrayList e LinkedList, podem ser percorridas dessa forma

Análise comparativa de ArrayList vs LinkedList
a) A camada subjacente do ArrayList é implementada com arrays, e a camada subjacente do LinkedList é implementada com listas enlaçadas bidirecionais.
b) Ao realizar operações de inserção ou exclusão, é melhor usar o LinkedList.
c) Ao realizar uma operação de busca, é melhor usar o ArrayList.


Para ser direto, é armazenamento sequencial e armazenamento em cadeia na estrutura de dados




Anterior:Uso da tag jstl &lt;c:if&gt;
Próximo:java:list和set集合的遍历
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com