Três conjuntos de pontos de conhecimento básico de Java

1. Coleções em Java

        A hierarquia da estrutura Collection. O pacote java.util contém todas as classes e interfaces do framework Collection. Elementos principais da estrutura de coleções Java - interfaces, implementações, operações de agregação e algoritmos.

        A classe de coleção do Java é definida no java.utilpacote, suporta genéricos e fornece principalmente três tipos de classes de coleção, incluindo List, Sete Map. As coleções Java usam travessia uniforme Iteratore tentam não usar interfaces legadas.

Hierarquia de coleção em Java

1, Lista

        Lista é o tipo mais básico de coleção: é uma lista ordenada. Em aplicações práticas, precisamos adicionar e excluir uma lista ordenada de elementos, e nós a usamos mais ArrayList.

2、Mapa

        Map, uma estrutura de dados de uma tabela de mapeamento de chave-valor, é usada para encontrar valores (elementos) de forma eficiente por meio de chaves.

3、Conjunto

        Se precisarmos apenas armazenar chaves exclusivas e não precisar armazenar valores mapeados, podemos usar Set.

4、Fila

        queue( Queue) é uma coleção frequentemente usada. QueueNa verdade, ele implementa uma lista ordenada de primeiro a entrar, primeiro a sair (FIFO: First In First Out).

5, Iterador

        Esse padrão de percorrer uma coleção por meio de um objeto Iterator é chamado de iterador. A vantagem de usar iteradores é que o chamador sempre percorre os vários tipos de coleção de maneira uniforme, sem precisar se relacionar com suas estruturas internas de armazenamento.

        Se escrevermos uma classe de coleção e quisermos usar o for cada loop, precisamos apenas atender às seguintes condições:

        (1) A classe de coleção implementa a interface Iterable, que requer que um objeto Iterator seja retornado;
        (2) Itera os dados internos da coleção com o objeto Iterator.

6, Propriedades

        É muito simples ler o Propertiesarquivo de configuração com. O arquivo de configuração Java padrão é .propertiesa extensão, cada linha é key=valuerepresentada por , e o #início da classe é um comentário. O seguinte é um arquivo de configuração típico:

# setting.properties

last_open_file=/data/hello.txt
auto_save_interval=60

        Inside Properties é essencialmente uma Hashtable. 

        Pode ser lido de um arquivo ou de um pacote ar.

7、Coleções

        CollectionsÉ uma classe de ferramentas fornecida pelo JDK, que também está localizada no java.utilpacote. Ele fornece uma série de métodos estáticos que facilitam a manipulação de várias coleções.

        criar coleção vazia;

        Crie uma coleção de elemento único;

        criar coleções imutáveis;

        Ordenar/Embaralhar etc.

        Transforme uma coleção sem thread em uma coleção thread-safe

8. Exemplos

1. P: Você conhece essas classes e interfaces legadas?

Resposta:  Classes legadas: Hashtable, Vector, Stack; não devem continuar a ser usadas.

        Interface herdada: Enumeration<E>: Substituída por Iterator<E>.

2. P: Qual é a diferença entre Set e Map?

Resposta:  Set contém apenas valores, enquanto Map contém chaves e valores.
        Os conjuntos contêm valores exclusivos, enquanto os mapas podem conter chaves exclusivas com valores duplicados.
        Um Set contém um único valor nulo, enquanto um Map pode conter uma única chave nula e n valores nulos.


3. Pergunta: List, Set, Map herdam da interface Collection?

Resposta:  Lista, Conjunto é, Mapa não é

4. P: Qual é a principal diferença entre um array e uma coleção?

Resposta: (1) Os arrays são sempre de tamanho fixo, ou seja, os usuários não podem aumentar ou diminuir o comprimento do array de acordo com suas próprias necessidades ou em tempo de execução, mas em Collections, o tamanho pode ser alterado dinamicamente conforme a necessidade.
        (2) Arrays só podem armazenar objetos do mesmo tipo ou de tipos semelhantes, mas objetos heterogêneos podem ser armazenados em Collections.
        (3) Array não fornece métodos prontos, como classificação e pesquisa, mas o Collection inclui métodos prontos.

5. P: Qual é a diferença entre Iterator e ListIterator?

Resposta: Iterator percorre elementos apenas para frente, enquanto ListIterator percorre elementos para frente e para trás.

6. P: Qual é a diferença entre ConcurrentHashMap, HashMap e HashTable?

Resposta: (1) Os pacotes são diferentes java.util.HashMap; java.util.concurrent.ConcurrentHashMap;

        (2) ConcurrentHashMap implementa a interface ConcurrentMap e Serializable. Esta classe é um HashMap thread-safe. 

        (3) Hashtable herda da classe Dictionary, a matriz subjacente + implementação de lista vinculada, nem chave nem valor podem ser nulos, thread-safe, a maneira de obter thread-safe é bloquear todo o HashTable ao modificar dados, o que é ineficiente, e ConcurrentHashMap fez otimizações relacionadas.

7. P: Os elementos do Conjunto não podem ser repetidos, como garantir que eles não sejam repetidos?

Resposta: Os elementos do Set não podem ser repetidos. Ao colocar, o hash e o valor serão comparados. Caso o hash não exista, é permitido armazená-lo. Se o valor do código hash for o mesmo e o julgamento equals for igual, significa que o elemento já existe, mas não existe; se o valor do código hash for o mesmo e o julgamento equals não for igual, significa que o elemento não existe e existe;

8. P: Qual é a diferença entre ArrayList e LinkedList?

Resposta: (1) ArrayList usa array dinâmico; LinkedList usa lista duplamente encadeada.

       (2) ArrayList é mais adequado para armazenamento e mais rápido para ler; LinkedList é mais rápido para operar.

        (3) ArrayList fornece acesso aleatório; LinkedList não fornece acesso aleatório.

9. P: Qual é a diferença entre HashMap e TreeMap?

Resposta: HashMap permanece desordenado enquanto TreeMap permanece ascendente.
        HashMap é implementado por tabela de hash e TreeMap é implementado por estrutura de árvore.
        HashMap pode ser classificado por chave ou valor, e TreeMap pode ser classificado por chave.
        HashMap pode conter chaves nulas com vários valores nulos, enquanto TreeMap não pode conter chaves nulas, mas pode ter vários valores nulos.

10. P: Como sincronizar ArrayList?

答:(1)Collections.synchronizedList

        (2) Usando CopyOnWriteArrayList, CopyOnWriteArrayList é uma versão thread-safe de ArrayList.

import java.util.*;  
public class SyncronizeArrayList {  
    public static void main(String args[]) {  
        // Non Synchronized ArrayList   
        List<String> fruitList = new ArrayList<String>();  
  
        fruitList.add("Mango");  
        fruitList.add("Banana");  
        fruitList.add("Apple");  
        fruitList.add("Strawberry");  
        fruitList.add("Pineapple");  
  
        // 同步 ArrayList 
        furitList = Collections.synchronizedList(fruitList);  
  
        // 使用同步块来避免非确定性行为  
        synchronized (fruitList) {  
            Iterator<String> itr = fruitList.iterator();  
            while (itr.hasNext()) {  
                System.out.println(itr.next());  
            }  
        }  
    }  
}  

11. P: Como tornar o Java ArrayList somente leitura? 

​Resposta : Obtenha java ArrayList somente leitura chamando o método Collections.unmodifiableCollection(). Quando definimos um ArrayList como somente leitura, não podemos fazer nenhuma modificação na coleção através dos métodos add(), remove() ou set().

12. Pergunta: Qual das seguintes afirmações está incorreta? 

    (A) java.util.List pode ser usado para armazenar um conjunto de elementos ordenados armazenados pela posição do índice.
    (B) Objetos Java e tipos básicos de dados podem ser armazenados na coleção java.util.Set.
    (C) Quando uma thread executa o método sleep() da classe Thread para começar a dormir, o bloqueio do objeto ocupado não será liberado.
    (D) Quando a máquina virtual Java inicializa uma classe, se sua classe pai não tiver sido inicializada, sua classe pai será inicializada primeiro.

Resposta: B. Somente objetos Java podem ser armazenados na coleção java.util.Set, e dados de tipos básicos Java não são permitidos.

Acho que você gosta

Origin blog.csdn.net/bashendixie5/article/details/123598818
Recomendado
Clasificación