ステージ 1: データベース マッピング オブジェクト (DO) > User.java の作成
ステージ 2: フロントエンド データ転送オブジェクト (DTO) > UserDTO.java
1.マップ機能
-
ストリーム内の各要素 T を R にマップします(型変換と同様)
-
シナリオ: DO オブジェクトなどの オブジェクトをDTO オブジェクト (フロントエンド データ転送オブジェクト) に変換する
1. 前のセクションの例
- コレクションを走査し、コレクション内の各オブジェクトを処理するのと同様
public static void main(String[] args) {
List<String> list = Arrays.asList("Spring Boot", "Python", "微服务", "高并发", "Redis", "MongoDB");
List<String> resultList = list.stream().map(obj -> "您正在学习:" + obj).collect(Collectors.toList());
System.out.println(resultList);
}
2. DO を DTO オブジェクトに変換する
-
データベースフィールドの漏洩を防ぐ
ステージ 1: データベース マッピング オブジェクト (DO) > User.javaの作成
@NoArgsConstructor
@AllArgsConstructor
@Data
public class User {
private String id;
private String name;
private String pwd;
}
ステージ 2:フロントエンド データ転送オブジェクト( DTO ) > UserDTO.java
@NoArgsConstructor
@AllArgsConstructor
@Data
public class UserDTO {
private String userId;
private String userName;
}
ステージ 3: DO から DTO まで
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class MapDemo {
public static void main(String[] args) {
List<User> list = Arrays.asList(new User(1, "陆小凤", "123456"),
new User(2, "西门吹雪", "123456"),
new User(3, "叶孤城", "123456"));
List<UserDTO> newList = list.stream()
.map(obj -> new UserDTO(obj.getId(), obj.getName()))
.collect(Collectors.toList());
System.out.println(newList);
}
}
ステージ 4:実行結果
2.フィルター機能
-
設定された条件によって要素をフィルタリングするために使用されます
-
シナリオ: 条件を満たす要素を除外するために使用されます
1. 要件:長さが 5 を超える文字列を除外する
public static void main(String[] args) {
List<String> list = Arrays.asList("Spring Boot", "Python", "微服务", "高并发", "Redis", "MongoDB");
List<String> resultList = list.stream()
.filter(obj -> obj.length() > 5).collect(Collectors.toList());
System.out.println(resultList);
}
の結果