「Java」stream.Stream.map()でリスト内のオブジェクトから特定の要素だけを取得する方法
関数説明
△ public static <T> List<T> asList(T… a)
指定された配列に連動する固定サイズのリストを返します。返されたリストへの変更は、そのまま配列に書き込まれます。
△ default Stream<E> stream()
このコレクションをソースとして使用して、逐次的なStreamを返します。
△ Stream<R> map(Function<? super T,? extends R> mapper)
このストリームの要素に指定された関数を適用した結果から構成されるストリームを返します。
△ public static <T> Collector<T,?,List<T>> toList()
入力要素を新しいListに蓄積するCollectorを返します。
1.Userクラスの定義
package com.arkgame.study;
public class User {
private Integer age;
private String userId;
private String addr;
/**
* @param age
* @param userId
* @param addr
*/
public User(Integer age, String userId, String addr) {
this.age = age;
this.userId = userId;
this.addr = addr;
}
/**
* @return age
*/
public Integer getAge() {
return age;
}
/**
* @param age セットする age
*/
public void setAge(Integer age) {
this.age = age;
}
/**
* @return userId
*/
public String getUserId() {
return userId;
}
/**
* @param userId セットする userId
*/
public void setUserId(String userId) {
this.userId = userId;
}
/**
* @return addr
*/
public String getAddr() {
return addr;
}
/**
* @param addr セットする addr
*/
public void setAddr(String addr) {
this.addr = addr;
}
}
2.リスト内のオブジェクトから特定の要素だけを取得する
package com.arkgame.study;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class UserGetEle {
public static void main(String[] args) {
//指定された配列に連動する固定サイズのリストを返します。
List<User> cftLst=Arrays.asList(
new User(21,"user_AA","東京"),
new User(22,"user_BB","大阪"),
new User(23,"user_CC","福岡"),
new User(24, "user_DD", "横浜"));
//ストリームの要素に指定された関数を適用した結果から構成されるストリームを返します。
List<String> userIdLst = cftLst.stream()
.map(s -> s.getUserId())
.collect(Collectors.toList());
for (String userId : userIdLst) {
System.out.println("ユーザーID:" + userId);
}
System.out.println("*****************");
List<String> addrLst = cftLst.stream()
.map(s -> s.getAddr())
.collect(Collectors.toList());
for (String str : addrLst) {
System.out.println("都市:" + str);
}
}
}
3.実行結果
ユーザーID:user_AA
ユーザーID:user_BB
ユーザーID:user_CC
ユーザーID:user_DD
*****************
都市:東京
都市:大阪
都市:福岡
都市:横浜