目的
リスト内のオブジェクトから特定の要素だけを抜き出す
手段
Java8のStream
サンプル
オブジェクト
NamePlate.java
package stream;
public class NamePlate {
private Integer id;
private String name;
public NamePlate(Integer id, String name) {
this.id = id;
this.name = name;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
目的の処理
StreamSample.java
package stream;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StreamSample {
public static void main(String[] args) {
List<NamePlate> source = Arrays.asList(
new NamePlate(1, "Taro")
, new NamePlate(2, "Jiro")
, new NamePlate(3, "Hanako")
, new NamePlate(4, "Jiro")
, new NamePlate(5, "Jiro")
, new NamePlate(6, "Taro")
);
List<String> nameList = source.stream()
.map(s -> s.getName())
//.distinct()
.collect(Collectors.toList());
System.out.println(nameList);
}
}
結果
[Taro, Jiro, Hanako, Jiro, Jiro, Taro]
コメントアウトしている「distinct」をはずすと
[Taro, Jiro, Hanako]