リストとコレクションの静的メソッド

WBOY
リリース: 2024-07-16 16:57:12
オリジナル
486 人が閲覧しました

Collections クラスには、コレクションとリストで一般的な操作を実行する静的メソッドが含まれています。このセクションでは、配列リストの Collections クラスにいくつかの静的メソッドを紹介しました。 Collections クラスには、sortbinarySearchreverseshufflecopy が含まれています。 、リストの fill メソッド、コレクションの maxmindisjoint、および frequency メソッド、以下の図に示すように。

Image description

Comparable インターフェースの compareTo メソッドを使用すると、リスト内の比較可能な要素を自然な順序で並べ替えることができます。コンパレータを指定して要素を並べ替えることもできます。たとえば、次のコードはリスト内の文字列を並べ替えます。

リスト list = Arrays.asList("赤", "緑", "青");
コレクション.sort(リスト);
System.out.println(リスト);

出力は [青、緑、赤] です。

上記のコードはリストを昇順に並べ替えます。降順で並べ替えるには、Collections.reverseOrder() メソッドを使用して、要素を自然な順序とは逆に並べる Comparator オブジェクトを返すだけです。たとえば、次のコードは文字列のリストを降順に並べ替えます。

リスト list = Arrays.asList("黄", "赤", "緑", "青");
Collections.sort(list, Collections.reverseOrder());
System.out.println(リスト);

出力は [黄、赤、緑、青] です。

binarySearch メソッドを使用して、リスト内のキーを検索できます。この方法を使用するには、リストを昇順に並べ替える必要があります。キーがリストにない場合、メソッドは -(挿入ポイント +1) を返します。挿入ポイントは、項目が存在する場合にリスト内に項目が入る場所であることを思い出してください。たとえば、次のコードは、整数のリストと文字列のリスト内のキーを検索します。

リスト list1 = Arrays.asList(2, 4, 7, 10, 11, 45, 50, 59, 60, 66);
System.out.println("(1) インデックス: " + Collections.binarySearch(list1, 7));
System.out.println("(2) インデックス: " + Collections.binarySearch(list1, 9));

リスト list2 = Arrays.asList("青", "緑", "赤");
System.out.println("(3) インデックス: " +
Collections.binarySearch(list2, "red"));
System.out.println("(4) インデックス: " +
Collections.binarySearch(list2, "シアン"));

上記のコードの出力は次のとおりです:

(1) インデックス: 2
(2) 指数: -4
(3) インデックス: 2
(4) 指数: -2

reverse メソッドを使用して、リスト内の要素を反転できます。たとえば、次のコードは [青、緑、赤、黄].

を表示します。

リスト list = Arrays.asList("黄", "赤", "緑", "青");
Collections.reverse(list);
System.out.println(リスト);

shuffle(List) メソッドを使用すると、リスト内の要素をランダムに並べ替えることができます。たとえば、次のコードは list.

内の要素をシャッフルします。

リスト list = Arrays.asList("黄", "赤", "緑", "青");
Collections.shuffle(リスト);
System.out.println(リスト);

shuffle(List, Random) メソッドを使用して、指定した Random オブジェクトを使用してリスト内の要素をランダムに並べ替えることもできます。指定した Random オブジェクトを使用すると、同じ元のリストに対して同一の要素シーケンスを含むリストを生成するのに役立ちます。たとえば、次のコードは list.

内の要素をシャッフルします。

リスト list1 = Arrays.asList("黄", "赤", "緑", "青");
リスト list2 = Arrays.asList("黄", "赤", "緑", "青");
Collections.shuffle(list1, new Random(20));
Collections.shuffle(list2, new Random(20));
System.out.println(list1);
System.out.println(list2);

list1list2 には、シャッフルの前後で同じ要素のシーケンスがあることがわかります。

copy(det, src) メソッドを使用すると、すべての要素をソース リストから同じインデックス上の宛先リストにコピーできます。宛先リストは送信元リストと同じ長さでなければなりません。これより長い場合、ソース リスト内の残りの要素は影響を受けません。たとえば、次のような
コードは list2list1 にコピーします。

リスト list1 = Arrays.asList("黄", "赤", "緑", "青");
リスト list2 = Arrays.asList("白", "黒");
Collections.copy(list1, list2);
System.out.println(list1);

list1 の出力は [白、黒、緑、青] です。 copy メソッドは浅いコピーを実行します。つまり、ソース リストの要素の参照のみがコピーされます。

nCopies(int n, Object o) メソッドを使用して、指定されたオブジェクトの n 個のコピーで構成される不変のリストを作成できます。たとえば、次のコードは 5 つの Calendar オブジェクトを含むリストを作成します。

リスト list1 = Collections.nCopies(5, new GregorianCalendar(2005, 0, 1));

nCopies メソッドから作成されたリストは不変であるため、リスト内の要素を追加、削除、更新することはできません。すべての要素は同じ参照を持ちます。

fill(List list, Object o) メソッドを使用して、リスト内のすべての要素を指定した要素に置き換えることができます。たとえば、次のコードは [黒、黒、黒] を表示します。

リスト list = Arrays.asList("赤", "緑", "青");
Collections.fill(list, "black");
System.out.println(リスト);

コレクション内の最大要素と最小要素を見つけるには、max メソッドと min メソッドを使用できます。要素は、Comparable インターフェイスまたは Comparator インターフェイスを使用して比較できる必要があります。たとえば、次のコードは、コレクション内の最大文字列と最小文字列を表示します。

コレクション collection = Arrays.asList("赤", "緑", "青");
System.out.println(Collections.max(コレクション));
System.out.println(Collections.min(コレクション));

2 つのコレクションに共通の要素がない場合、disjoint(collection1, collection2) メソッドは true を返します。たとえば、次のコードでは、disjoint(collection1, collection2)false を返しますが、disjoint(collection1, collection3)true を返します。 .

コレクション collection1 = Arrays.asList("赤", "シアン");
コレクション<文字列> collection2 = Arrays.asList("赤", "青");
コレクション<文字列> collection3 = Arrays.asList("ピンク", "黄褐色");
System.out.println(Collections.disjoint(collection1, collection2));
System.out.println(Collections.disjoint(collection1, collection3));

frequency(collection, element) メソッドは、コレクション内の要素の出現数を見つけます。たとえば、次のコードでは、frequency(collection, "red")2 を返します。

コレクション collection = Arrays.asList("赤", "シアン", "赤");
System.out.println(Collections.frequency(collection, "red"));

以上がリストとコレクションの静的メソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!