Java 8 のストリーム API: コレクションのグループ化と統計のために Collectors クラスを使用する方法
Java 8 の Stream API: コレクションのグループ化と統計に Collectors クラスを使用する方法
はじめに:
Java 8 では、関数型プログラミングの概念である Stream API が導入されています。これにより、収集データをより簡潔かつエレガントな方法で処理できるようになります。 Stream API は豊富な機能を提供します。その 1 つは、コレクションのグループ化とカウントです。この記事では、Collector クラスを使用してこの機能を実現する方法を紹介します。
- コレクションのグループ
実際の開発では、後続の処理を容易にするために、特定の属性に従ってコレクションをグループ化する必要があることがよくあります。 Java 8 では、Collectors クラスの groupBy() メソッドを使用して、コレクションのグループ化を実装できます。
サンプル コードは次のとおりです:
class Person { private String name; private String gender; private int age; public Person(String name, String gender, int age) { this.name = name; this.gender = gender; this.age = age; } public String getName() { return name; } public String getGender() { return gender; } public int getAge() { return age; } } List<Person> persons = Arrays.asList( new Person("John", "male", 20), new Person("Jane", "female", 25), new Person("Tom", "male", 30), new Person("Emily", "female", 35) ); Map<String, List<Person>> groupedByGender = persons.stream() .collect(Collectors.groupingBy(Person::getGender)); System.out.println(groupedByGender);
出力結果は次のとおりです:
{female=[Person{name='Jane', gender='female', age=25}, Person{name='Emily', gender='female', age=35}], male=[Person{name='John', gender='male', age=20}, Person{name='Tom', gender='male', age=30}]}
上記のコードでは、まず例として Person クラスを作成しました。これには、名前、性別、年齢の属性が含まれます。次に、人物オブジェクトの List コレクションが作成されます。次に、stream() メソッドを使用してコレクションをストリームに変換します。最後に、Collectors クラスの groupBy() メソッドを使用して、Person オブジェクトの性別属性に従ってグループ化します。結果は Map コレクションに保存されます。
- コレクションの統計
実際には、要素数の計算、合計、平均化など、コレクション内の要素をカウントする必要がある場合があります。 Java 8 の Stream API には一連の統計メソッドが用意されており、summingInt()、averagingInt()、counting()、および Collectors クラスのその他のメソッドを使用して実装できます。
サンプル コードは次のとおりです:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); int sum = numbers.stream().collect(Collectors.summingInt(Integer::intValue)); double average = numbers.stream().collect(Collectors.averagingInt(Integer::intValue)); long count = numbers.stream().collect(Collectors.counting()); System.out.println("Sum: " + sum); System.out.println("Average: " + average); System.out.println("Count: " + count);
出力結果は次のとおりです:
Sum: 15 Average: 3.0 Count: 5
上記のコードでは、最初に整数型のリストを作成します。一連の数字が含まれています。次に、summingInt() メソッドを使用して合計を計算し、averagingInt() メソッドを使用して平均を計算し、counting() メソッドを使用して数値を計算します。最後に、Collectors クラスのcollect() メソッドを通じて結果が取得されます。
概要:
Java 8 の Stream API と Collectors クラスを使用すると、より簡潔かつエレガントな方法でコレクションをグループ化し、統計操作を実行できます。この機能により、コードの可読性が向上するだけでなく、プログラムの柔軟性も大幅に向上します。
上記は、Java 8 の Stream API および Collectors クラスのコレクションのグループ化と統計についてのこの記事の紹介です。お役に立てば幸いです。ありがとう!
以上がJava 8 のストリーム API: コレクションのグループ化と統計のために Collectors クラスを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

javadevelopmentisnotentirelylylypratform-IndopentDuetoseveralfactors.1)jvmvariationsaffectperformanceandbehavioracrossdifferentos.2)nativeLibrariesviajniintroducePlatform-specificissues.3)giaiasystemsdifferbeTioneplateplatifflics.4)

Javaコードは、さまざまなプラットフォームで実行するときにパフォーマンスの違いがあります。 1)JVMの実装と最適化戦略は、OracleJDKやOpenJDKなどとは異なります。 2)メモリ管理やスレッドスケジューリングなどのオペレーティングシステムの特性もパフォーマンスに影響します。 3)適切なJVMを選択し、JVMパラメーターとコード最適化を調整することにより、パフォーマンスを改善できます。

java'splatformindepentedencehaslimitationsincludingporformanceoverhead、versioncompatibulisisues、changleSwithnativeLibraryIntegration、プラットフォーム固有の機能、およびjvminStallation/maintenation。

PlatformEndependEncealLowsProgramStorunonAnyPlatformWithOdification、whilecross-platformdevelopmentReadreessomeplatform-specificAdjustments.platformindependence、explifiedByjava、unableSiversAlexecutionButMayCompromperformance

jitcompalilationinjavaenhancesperformance whelemaintaining formindepence.1)itdynamicallyTrantesiNTODENATIVEMACHINECODEATRUNTIME、最適化されたコードを最適化すること、

javaispopularforsoss-platformdesktopapplicationsduetoits "writeonce、runaynay" philosophy.1)itusesbytecodatiTatrunnanyjvm-adipplatform.2)ライブラリリケンディンガンドジャヴァフククレアティック - ルルクリス

Javaでプラットフォーム固有のコードを作成する理由には、特定のオペレーティングシステム機能へのアクセス、特定のハードウェアとの対話、パフォーマンスの最適化が含まれます。 1)JNAまたはJNIを使用して、Windowsレジストリにアクセスします。 2)JNIを介してLinux固有のハードウェアドライバーと対話します。 3)金属を使用して、JNIを介してMacOSのゲームパフォーマンスを最適化します。それにもかかわらず、プラットフォーム固有のコードを書くことは、コードの移植性に影響を与え、複雑さを高め、パフォーマンスのオーバーヘッドとセキュリティのリスクをもたらす可能性があります。

Javaは、クラウドネイティブアプリケーション、マルチプラットフォームの展開、および言語間の相互運用性を通じて、プラットフォームの独立性をさらに強化します。 1)クラウドネイティブアプリケーションは、GraalvmとQuarkusを使用してスタートアップ速度を向上させます。 2)Javaは、埋め込みデバイス、モバイルデバイス、量子コンピューターに拡張されます。 3)Graalvmを通じて、JavaはPythonやJavaScriptなどの言語とシームレスに統合して、言語間の相互運用性を高めます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

WebStorm Mac版
便利なJavaScript開発ツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール

ホットトピック









