「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クラスの定義

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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;
}
}
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; } }
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.リスト内のオブジェクトから特定の要素だけを取得する

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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);
}
}
}
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); } } }
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