Java9パート5-コレクションコレクションの拡張と最適化

次の期間にJava9に関する一連の記事を書く予定です。Java9はJava8やJava11のようなコアJavaバージョンではありませんが、注目に値する機能はまだたくさんあります。皆様のご注目をお待ちしております。Java9に関する一連の記事、約10の記事を執筆しますが、この記事は5番目の記事です。

この記事では、Javaの9つのコレクションのColleactionサブクラスで発生したより有用な変更と拡張機能をすばやく理解できます。

1つはOf()、コレクションを作成する方法を提供する

1.1。Setコレクションオブジェクトの構築

Java 9は、Setコレクションオブジェクトをより簡単に構築するための一連のファクトリメソッドof()を提供します。of()メソッドを使用してjava.util.Setを作成する場合、要素ごとにadd()データを作成する必要はありません。ただし、この方法で作成されたSetコレクションオブジェクトは、一度作成されると変更できず、コレクション要素を追加できないことに注意してください。

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

私たちが使用するための多くのオーバーロードされたof()ファクトリメソッドもあります

 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。リストコレクションオブジェクトの構築

Setコレクションと同様に、Listコレクションクラスも一連の()ファクトリ関数を追加して、不変のListコレクションオブジェクトを作成します。

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

1.3。Mapオブジェクトを作成します

MapはColleactionのサブクラスではありませんが、通常はコレクションとして学習します。Mapクラスは、不変のMapオブジェクトを作成するための一連の()ファクトリ関数も追加します。唯一の違いは、パラメーターがKey / Valueの形式で渡されることです。

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

1.4。Map.ofEntries()とMap.entry()を使用します

ファクトリメソッドMap.ofEntriesは、Map.Entryを可変引数として受け入れます。Map.entry(K, V)Entryインスタンスを作成するための別の関連する新しい静的メソッドがあります。

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

二、配列

配列は、収集操作用のツールクラスであり、Java9バージョンでも拡張されています。

2.1。Arrays.mismatch()

これらの新しいメソッドは、2つの配列間の最初の不一致インデックスを見つけるために使用されます。たとえば、次のコードは、2つの整数配列間の最初の不一致を検出します。不一致がない場合、このメソッドは-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

別のそのようなメソッドは、fromIndexパラメーターとtoIndexパラメーターを受け入れて、比較的不一致のインデックスを見つけます。例えば:

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

arrayAインデックスの最初の要素とarrayBインデックスの2番目の要素から、最初の一致しないアイテムの検索が実行されます。

 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()

そして、2つの配列の要素が等間隔であることを決定するためArrays.mismatch()Arrays.equals()使用される、いくぶん似ています。新しいメソッドは、2つの比較された配列にfromIndexパラメーターとtoIndexパラメーターを追加します。これらのメソッドは、2つの配列の相対的なインデックス位置に基づいて2つの配列の同等性をチェックします。

 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

sa配列のインデックス0〜2から、要素をsb配列のインデックス3〜5と比較します。結果は真に等しいです。

私のブログをフォローすることを歓迎します、多くのブティックコレクションがあります

  • この記事は、出典を示して複製されています(接続を添付する必要があり、テキストのみを複製することはできません):レターブラザーのブログ

あなたがそれがあなたに役立つと思うなら、私のためにそれを好きにして共有してください!あなたのサポートは私の尽きることのない創造的な動機です!また、最近、以下のような高品質なコンテンツを出力しておりますので、よろしくお願いいたします。

おすすめ

転載: blog.csdn.net/hanxiaotongtong/article/details/109141002