バックエンド死亡経路TIL 04第1
学習目標
講座を聞いて、私の知っている内容をチェックして、
新しい学習内容を整理する.
あなたの疑問を理解し、理解します.
Collection
Collectionは、複数のデータを集約できる抽象的なインタフェースです.
Collectionを導入する前に,汎用的な標準インタフェースがないため,プログラマはすべてのタイプの集合を処理するためにアルゴリズムを記述することが困難であった.
したがって、JDK 1.2からCollectionを導入すると、以下の利点があります.
集合階層
(出典:https://www.geeksforgeeks.org/collections-in-java-2/)
集合は,Set,List,Queueインタフェースによって実装される.
各クラスは、これらの親インタフェースを継承して、特定のデータ構造を実現します.
MapインタフェースもCollectionとして単独で定義されているが,構造上の相違によるものである.
iterator
奇形機は、コレクションからストレージ要素を取得する方法を標準化するインタフェースです.
CollectionはIterableを実装しているので,集合実装のサブクラスもIteratorを実装することができる.
デフォルトでは、2つの方法があります.
ただし、要素を選択的に削除または置換するには、反復器を使用する必要があります.
Stream
Streamは、データ・ストリームである利用可能なテクノロジーです.
Java 8の前に配列または集合インスタンスを処理するには、forまたはforeachで要素を1つずつ抽出します.この方法の欠点は,論理が複雑であるほど符号化が困難であることである.
しかし,Streamはram式を用いてコードの表現を簡略化し,配列と集合を関数的に処理し,複数の高次関数を用いて強力な機能を確実に使用することを可能にする.
さらに、要素をより迅速に処理できる簡単な並列処理方法も提供されます.
Stream
作成
Streamは、Streamオブジェクトを作成および使用するか、配列、コレクション、カウント、ファイルなどのストリームを作成できます.ただし、繰り返し使用することはできません.演算が完了した後に再生成する必要があります.
加工
これは、データを加工するための中間演算であり、演算結果をStreamに戻すため、演算を継続することができる.これをメソッドチェーンと呼ぶ.
結果の作成
これは、加工されたデータから必要な結果を得るプロセスであり、Streamの要素を消費する必要があるため、一度しか処理できません.
Optional
Javaでは、ほとんどのコンテンツが参照値であるため、結果値は常にnullにすることができます.
また、nullではなく初期値を使用して、nullによるエラーのNull PointerExceptionチェックロジックを回避し、低減することをお勧めします.あるいは、Emptyオブジェクトを使用して空のジェネレータを作成して、これらのプロシージャのエラーを確認し、空の保護を行うこともできます.
ただし、Java 8からはOptionalを使用してNullPointerExceptionを回避できます.Optionalは、nullの値をnullが発生しないように再ラップするrapperクラスです.
//빈 객체 생성
Optional<String> opt = Optional.empty();
//문자열 값이 비어있는지 확인하고 비어 있으면 "null?"로 초기화
Optional<String> optional = Optional.ofNullable(getString());
String str = optional.orElse("null?");
Ramda計算もサポートされ、ストリームのように作成-加工-エクスポート結果の演算を実行できます.Reference
この問題について(バックエンド死亡経路TIL 04第1), 我々は、より多くの情報をここで見つけました https://velog.io/@justsaturday/백엔드-데브코스-TIL-04일차テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol