1653403440
これを読む前に、プログラミングの命令型および宣言型のスタイルを試して学ぶことをお勧めします。命令型と宣言型を参照してください
JDK 1.8をバンドルするときにJavaチームに含まれる強力な機能の1つは、StreamsAPIです。
ストリームの目的は、要素に対してさまざまな種類の操作を実行することにより、要素のシーケンスを処理することです。
ストリーム用の新しいJavaパッケージはjava.util.streamです。
StreamsAPIの重要な側面のいくつかを見てみましょう。
ストリームを作成する方法はいくつかあります。
StreamsAPIを使用する利点は次のとおりです。
List
のコレクションにのみ適用できます。MapSetArrays
parallelStream()
。十分な話!例を見てみましょう🤩
ストリームパイプラインを理解するための例を見てみましょう。
書籍のリストがあり、、などのメソッドのチェーンを実行していますfilter
。map
このメソッド呼び出しのチェーンは、ストリームパイプラインと呼ばれます。
関数を渡すため、これは関数型プログラミングとも呼ばれます。
Book
は、コンストラクター、ゲッター、およびセッターを備えたPOJOです。
class Book {
String title;
String author;
Integer year;
Integer copiesSoldInMillions;
Double rating;
Double costInEuros;
public Book(String title, String author, Integer year, Integer copiesSoldInMillions, Double rating, Double costInEuros) {
this.title = title;
this.author = author;
this.year = year;
this.copiesSoldInMillions = copiesSoldInMillions;
this.rating = rating;
this.costInEuros = costInEuros;
}
public String getAuthor() {
return author;
}
public Double getRating() {
return rating;
}
@Override
public String toString() {
return "Book{" +
"title='" + title + '\'' +
", author='" + author + '\'' +
", year=" + year +
", copiesSoldInMillions=" + copiesSoldInMillions +
", rating=" + rating +
", costInEuros=" + costInEuros +
'}';
}
}
BookDatabase
ダミーデータインジェクション用の別のクラス。
import java.util.Arrays;
import java.util.List;
public class BookDatabase {
public static List<Book> getAllBooks() {
return Arrays.asList(
new Book("Don Quixote", "Miguel de Cervantes", 1605, 500, 3.9, 9.99),
new Book("A Tale of Two Cities", "Charles Dickens", 1859, 200, 3.9, 10.0),
new Book("The Lord of the Rings", "J.R.R. Tolkien", 2001, 150, 4.0, 12.50),
new Book("The Little Prince", "Antoine de Saint-Exupery", 2016, 142, 4.4, 5.0),
new Book("The Dream of the Red Chamber", "Cao Xueqin", 1791, 100, 4.2, 10.0)
);
}
}
そして最後に、各オブジェクトBookApplication
で宣言型プログラミングまたは不変性を実行するクラスを終了します。book
import java.util.List;
public class BookApplication {
public static void main(String[] args) {
List<Book> books = BookDatabase.getAllBooks();
books.stream()
.filter(book -> book.getRating() >= 4)
.map(Book::getAuthor)
.forEach(System.out::println);
}
}
出力:
J.R.R. Tolkien
Antoine de Saint-Exupery
Cao Xueqin
上記の例では、Bookオブジェクトのリストがあります。
.stream(...)
オブジェクトのリストをBook
オブジェクトのストリームに変換するために適用しました。.filter(...)
取り、フィルタリングされたオブジェクトのストリームを取得する2つの中間操作を適用しました。.map(...)
.forEach(...)
すべてのオブジェクトを印刷するために終了しました。ソース:https ://hackernoon.com/have-you-used-the-streams-api-in-java
1653403440
これを読む前に、プログラミングの命令型および宣言型のスタイルを試して学ぶことをお勧めします。命令型と宣言型を参照してください
JDK 1.8をバンドルするときにJavaチームに含まれる強力な機能の1つは、StreamsAPIです。
ストリームの目的は、要素に対してさまざまな種類の操作を実行することにより、要素のシーケンスを処理することです。
ストリーム用の新しいJavaパッケージはjava.util.streamです。
StreamsAPIの重要な側面のいくつかを見てみましょう。
ストリームを作成する方法はいくつかあります。
StreamsAPIを使用する利点は次のとおりです。
List
のコレクションにのみ適用できます。MapSetArrays
parallelStream()
。十分な話!例を見てみましょう🤩
ストリームパイプラインを理解するための例を見てみましょう。
書籍のリストがあり、、などのメソッドのチェーンを実行していますfilter
。map
このメソッド呼び出しのチェーンは、ストリームパイプラインと呼ばれます。
関数を渡すため、これは関数型プログラミングとも呼ばれます。
Book
は、コンストラクター、ゲッター、およびセッターを備えたPOJOです。
class Book {
String title;
String author;
Integer year;
Integer copiesSoldInMillions;
Double rating;
Double costInEuros;
public Book(String title, String author, Integer year, Integer copiesSoldInMillions, Double rating, Double costInEuros) {
this.title = title;
this.author = author;
this.year = year;
this.copiesSoldInMillions = copiesSoldInMillions;
this.rating = rating;
this.costInEuros = costInEuros;
}
public String getAuthor() {
return author;
}
public Double getRating() {
return rating;
}
@Override
public String toString() {
return "Book{" +
"title='" + title + '\'' +
", author='" + author + '\'' +
", year=" + year +
", copiesSoldInMillions=" + copiesSoldInMillions +
", rating=" + rating +
", costInEuros=" + costInEuros +
'}';
}
}
BookDatabase
ダミーデータインジェクション用の別のクラス。
import java.util.Arrays;
import java.util.List;
public class BookDatabase {
public static List<Book> getAllBooks() {
return Arrays.asList(
new Book("Don Quixote", "Miguel de Cervantes", 1605, 500, 3.9, 9.99),
new Book("A Tale of Two Cities", "Charles Dickens", 1859, 200, 3.9, 10.0),
new Book("The Lord of the Rings", "J.R.R. Tolkien", 2001, 150, 4.0, 12.50),
new Book("The Little Prince", "Antoine de Saint-Exupery", 2016, 142, 4.4, 5.0),
new Book("The Dream of the Red Chamber", "Cao Xueqin", 1791, 100, 4.2, 10.0)
);
}
}
そして最後に、各オブジェクトBookApplication
で宣言型プログラミングまたは不変性を実行するクラスを終了します。book
import java.util.List;
public class BookApplication {
public static void main(String[] args) {
List<Book> books = BookDatabase.getAllBooks();
books.stream()
.filter(book -> book.getRating() >= 4)
.map(Book::getAuthor)
.forEach(System.out::println);
}
}
出力:
J.R.R. Tolkien
Antoine de Saint-Exupery
Cao Xueqin
上記の例では、Bookオブジェクトのリストがあります。
.stream(...)
オブジェクトのリストをBook
オブジェクトのストリームに変換するために適用しました。.filter(...)
取り、フィルタリングされたオブジェクトのストリームを取得する2つの中間操作を適用しました。.map(...)
.forEach(...)
すべてのオブジェクトを印刷するために終了しました。ソース:https ://hackernoon.com/have-you-used-the-streams-api-in-java