「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
*****************
都市:東京
都市:大阪
都市:福岡
都市:横浜