List<Order> list = new ArrayList<User>();
Order o1 = new Order("1","MCS-2019-1123");
list.add(o1 );
Order o2= new Order("2","MCS-2019-1124");
list.add(o2);
Order o3= new Order("3","MCS-2019-1125");
list.add(o3);
List<String> orderNoList=list.stream().map(Order::getOrderNo).collect(Collectors.toList());
System.out.println("输出单号集合:"+orderNoList);
List<String> idList=list.stream().map(Order::getId()).collect(Collectors.toList());
System.out.println(idList)
//如果只需要返回2个或者多个属性
list.stream().collect(Collectors.toMap(Order::getId, Order::getOrderNo)); 返回map
结果
输出第一个:["MCS-2019-1123", "MCS-2019-1124", "MCS-2019-1125"]
[1, 2, 3]
order类:
public class Order{
String id;
String orderNo;
public Order(String id, String orderNo) {
this.id = id;
this.orderNo= orderNo;
}
public String getId() {
return id;
}
public void setId(String order) {
this.id= id;
}
public String getOrderNo() {
return orderNo;
}
public void setOrderNo(String message) {
this.orderNo= orderNo;
}
}
根据有重复记录的某字段返回一条数据
Map<String, ProductPurchasePriceErpVO> deduplicationMap = validQuoteSkuNumNewList.stream().collect(Collectors.groupingBy(ProductPurchasePriceErpVO::getProductCode , Collectors.collectingAndThen(Collectors.toList(), value -> value.get(0))));
List<ProductPurchasePriceErpVO> list = Lists.newArrayList();
deduplicationMap .forEach((key, value) -> {
list.add(value);
});
对list集合某字段进行排序
List<类> list; 代表某集合
//返回 对象集合以类属性一升序排序
list.stream().sorted(Comparator.comparing(类::属性一));
//返回 对象集合以类属性一降序排序 注意两种写法
list.stream().sorted(Comparator.comparing(类::属性一).reversed());//先以属性一升序,结果进行属性一降序
list.stream().sorted(Comparator.comparing(类::属性一,Comparator.reverseOrder()));//以属性一降序
//返回 对象集合以类属性一升序 属性二升序
list.stream().sorted(Comparator.comparing(类::属性一).thenComparing(类::属性二));
//返回 对象集合以类属性一降序 属性二升序 注意两种写法
list.stream().sorted(Comparator.comparing(类::属性一).reversed().thenComparing(类::属性二));//先以属性一升序,升序结果进行属性一降序,再进行属性二升序
list.stream().sorted(Comparator.comparing(类::属性一,Comparator.reverseOrder()).thenComparing(类::属性二));//先以属性一降序,再进行属性二升序
//返回 对象集合以类属性一降序 属性二降序 注意两种写法
list.stream().sorted(Comparator.comparing(类::属性一).reversed().thenComparing(类::属性二,Comparator.reverseOrder()));//先以属性一升序,升序结果进行属性一降序,再进行属性二降序
list.stream().sorted(Comparator.comparing(类::属性一,Comparator.reverseOrder()).thenComparing(类::属性二,Comparator.reverseOrder()));//先以属性一降序,再进行属性二降序
//返回 对象集合以类属性一升序 属性二降序 注意两种写法
list.stream().sorted(Comparator.comparing(类::属性一).reversed().thenComparing(类::属性二).reversed());//先以属性一升序,升序结果进行属性一降序,再进行属性二升序,结果进行属性一降序属性二降序
list.stream().sorted(Comparator.comparing(类::属性一).thenComparing(类::属性二,Comparator.reverseOrder()));//先以属性一升序,再进行属性二降序<br><br><br>
集合分页:
获取第pageNum页数据
private List<?> partition(ArrayList<?> list, int pageSize, int pageNum) {
// 将 List 按照 PageSzie 拆分成多个List
List<? extends List<?>> partition = Lists.partition(list, pageSize);
// 总页数
int pages = partition.size();
pageNum = pageNum <= 0 ? 0 : (pageNum <= (pages - 1) ? pageNum-1 : (pages - 1));
return partition.get(pageNum);
}