自定义对象Get类:
/**
*自定义对象Get
*/
public class Get {
private int id;
private String name;
private Status status;
public Status getStatus() {
return status;
}
public void setStatus(Status status) {
this.status = status;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
假设有如下Get对象集合,需要将其转换成每个Get对象的对应Id集合,可以如下操作:
//Get对象集合
List<Get> gets;
//将其转换成每个Get对象对应的IdList
List<Integer> setId = gets.stream().map(Get::getId).collect(Collectors.toList());
//将其转换成每个Get对象对应的IdSet
Set<Integer> setId = gets.stream().map(Get::getId).collect(Collectors.toSet());
//将其转换成int数组
int [] intId = gets.stream().mapToInt(Get::getId).toArray();
补充:
数组与集合之间的转换,可以使用流的方式:
/**
*int、double、long三个基本类型都可以这样转换,暂不支持其他基本类型
*List<T>中的T只能是包装类型,因此只能转换成对应的包装类集合
*/
int[] ints;
List<Integer> integers = Arrays.stream(ints).boxed().collect(Collectors.toList());
//String数组需要这样转换
String[] strings1;
List<String> strings = Stream.of(strings1).collect(Collectors.toList());