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

Java

Posted by arkgame