uj5u.com熱心網友回復:
import java.util.*;
import java.util.stream.Collectors;
/**
* @author :jiaolian
* @date :Created in 2021-01-13 14:04
* @description:訂單分組測驗
* @modified By:
* 公眾號:叫練
*/
public class OrderByGroupTest {
public static void main(String[] args) {
//創建訂單;
List<Order> list = new ArrayList();
list.add(new Order("176",1700));
list.add(new Order("885",4400));
list.add(new Order("885",5100));
list.add(new Order("664",5000));
list.add(new Order("664",2500));
list.add(new Order("481",3000));
//將list按oid分組
Map<String,List<Order>> listMap = list.stream().collect(Collectors.groupingBy(Order::getOid));
//輸出測驗;
Set<Map.Entry<String,List<Order>>> set = listMap.entrySet();
Iterator<Map.Entry<String,List<Order>>> iterator = set.iterator();
while (iterator.hasNext()) {
Map.Entry entry = iterator.next();
System.out.println("key:"+entry.getKey()+" val:"+entry.getValue());
}
}
//TODO 簡化訂單物件
private static class Order {
//訂單id
private String oid;
//價格
private double price;
public Order(String oid, double price) {
this.oid = oid;
this.price = price;
}
public String getOid() {
return oid;
}
public void setOid(String oid) {
this.oid = oid;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
@Override
public String toString() {
return "Order{" +
"oid='" + oid + '\'' +
", price=" + price +
'}';
}
}
}
簡化了訂單表Order,代碼用到JDK1.8新特性List流化,一行代碼就可以搞定將list分組,1.8以前需要通過訂單id分組成list,然后把list再放入Map。下面是測驗結果,如果對你有用,請給個關注哦!
uj5u.com熱心網友回復:
group by 你的 id ,把所有id查出來,再回圈遍歷去取出來。取出來的不就是一樣的了嗎?轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/248300.html
標籤:Java SE
上一篇:java卸載,大佬,求助
