Java9 Parte 5 - Aprimoramento e otimização da coleção de coleções

Planejo escrever uma série de artigos sobre o Java 9. Embora o Java 9 não seja uma versão básica do Java como o Java 8 ou o Java 11, ainda existem muitos recursos aos quais vale a pena prestar atenção. Aguardando sua atenção, escreverei uma série de artigos sobre Java 9, cerca de dez artigos, e este é o quinto artigo.

Este artigo leva você a entender rapidamente quais mudanças e aprimoramentos mais úteis ocorreram nas subclasses de Colleaction das 9 coleções em Java.

Um, fornece um Of()método para criar uma coleção

1.1. Construindo um objeto de coleção Set

Java 9 fornece uma série de métodos de fábrica de () para construir objetos de coleção Set com mais facilidade. Usando o método of () para construir java.util.Set, não precisamos adicionar () dados elemento por elemento. Mas deve-se observar que o objeto de coleção Set construído dessa forma não pode ser alterado depois de construído e nenhum outro elemento de coleção pode ser adicionado.

Set<Integer> integers = Set.of(2, 6, 7, 10);
System.out.println(integers);  //[2, 10, 6, 7]

Existem também muitos métodos de fábrica sobrecarregados de () para usarmos

 of()//空的set
 of(E)
 of(E, E)
 of(E, E, E)
 //更多 ......
 of(E, E, E, E, E, E, E, E, E, E )// 一直到十个元素
 of(E...)//更多参数

1.2. Construindo um objeto de coleção de Lista

Semelhante à coleção Set, a classe de coleção List também adiciona uma série de funções de fábrica de () para criar objetos de coleção List imutáveis.

 List<Integer> integers = List.of(2, 6, 7, 10);
 System.out.println(integers); // [2, 6, 7, 10]

1.3. Construir um objeto Mapa

Embora Map não seja uma subclasse de Colleaction, geralmente o aprendemos como uma coleção. A classe Map também adiciona uma série de funções de fábrica de () para criar objetos Map imutáveis. A única diferença é que os parâmetros são passados ​​na forma de Chave / Valor.

 Map<Integer, String> map = Map.of(2, "two", 6, "six");
 System.out.println(map); // {2=two, 6=six}

1.4. Use Map.ofEntries () e Map.entry ()

O método de fábrica Map.ofEntriesaceita Map.Entry como varargs. Existe outro novo método estático relacionado Map.entry(K, V)para criar instâncias de Entry.

 Map<Integer, String> map = Map.ofEntries(Map.entry(2, "two"), Map.entry(4, "four"));
 System.out.println(map); //{2=two, 4=four}

二 、 Arrays

Arrays é nossa classe de ferramenta para operações de coleção, que também foi aprimorada na versão Java 9.

2.1.Arrays.mismatch()

Esses novos métodos são usados ​​para encontrar o primeiro índice de incompatibilidade entre duas matrizes. Por exemplo, o código a seguir encontra a primeira incompatibilidade entre duas matrizes de inteiros. Se não houver incompatibilidade, este método retornará -1.

int[] ints1 = {1, 3, 5, 7, 9};
int[] ints2 = {1, 3, 5, 6, 7};
int i = Arrays.mismatch(ints1, ints2);
System.out.println(i); //3

Outro método aceita os parâmetros fromIndex e toIndex para encontrar índices relativamente incompatíveis. Por exemplo:

 int mismatch(int[] a, int aFromIndex, int aToIndex, 
                int[] b, int bFromIndex, int bToIndex)

A partir do primeiro elemento do índice arrayA e do segundo elemento do índice arrayB, a busca pelo primeiro item não correspondido é realizada.

 int[] arrayA = {-2, 1, 3, 5, 7, 9};
 int[] arrayB = {-1, 0, 1, 3, 5, 7, 10};
 int j = Arrays.mismatch(arrayA, 1, arrayA.length, arrayB, 2, arrayB.length);
 System.out.println(j);

2.2.Arrays.equals()

E Arrays.mismatch()algo semelhante, Arrays.equals()usado para determinar os elementos nas duas matrizes são intervalos iguais. O novo método adiciona os parâmetros fromIndex e toIndex às duas matrizes comparadas. Esses métodos verificam a igualdade de duas matrizes com base nas posições de índice relativo das duas matrizes.

 String[] sa = {"d", "e", "f", "g", "h"};
 String[] sb = {"a", "b", "c", "d", "e", "f"};
 boolean b = Arrays.equals(sa, 0, 2, sb, 3, 5);
 System.out.println(b);  //true

A partir do índice 0-2 da matriz sa, compare os elementos com o índice 3-5 da matriz sb. O resultado é verdadeiro igual.

Bem-vindo a seguir meu blog, existem muitas coleções boutique

  • Este artigo é reproduzido com a indicação da fonte (a conexão deve ser anexada, e o texto não pode ser reproduzido somente): Carta Blog da Brother .

Se você acha que é útil para você, por favor, curta e compartilhe para mim! Seu apoio é minha motivação criativa inesgotável! . Além disso, o autor produziu o seguinte conteúdo de alta qualidade recentemente e espero sua atenção.

Acho que você gosta

Origin blog.csdn.net/hanxiaotongtong/article/details/109141002
Recomendado
Clasificación