java8 找出最重的苹果名称 找出最重的名子 最重

                                    java8 找出最重的苹果名称 找出最重的名子 最重

 

import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;

/**
 * @author InJavaWeTrust
 */
public class TestB {

	public static void main(String[] args) {
		Apple apple1 = new Apple("红富士", 45, "红", "辽宁", LocalDate.of(2019, 10, 12));
		Apple apple2 = new Apple("国光", 60, "绿", "河北", LocalDate.of(2019, 10, 18));
		Apple apple3 = new Apple("红星", 50, "红", "山东", LocalDate.of(2019, 9, 10));
		Apple apple4 = new Apple("黄元帅", 85, "黄", "山东", LocalDate.of(2019, 10, 6));
		Apple apple5 = new Apple("嘎啦", 35, "绿", "山东", LocalDate.of(2019, 8, 21));
		Apple apple6 = new Apple("寒富", 40, "红", "辽宁", LocalDate.of(2019, 9, 20));
		List<Apple> appleList = new ArrayList<>();
		appleList.add(apple1);
		appleList.add(apple2);
		appleList.add(apple3);
		appleList.add(apple4);
		appleList.add(apple5);
		appleList.add(apple6);
		
		//找出最重的苹果品种
		Map<String, Integer> appleVariety = new HashMap<>();
		
		appleList.stream().collect(Collectors.groupingBy(Apple::getVariety))//根据品种分组[品种名称 Apple]
		.forEach((k, v) -> appleVariety.put(k, v.stream().collect(Collectors.summingInt(Apple::getWeight))));
		
		Optional<String> appleOpt = appleVariety.keySet().stream().sorted(Comparator.comparing(appleVariety::get).reversed()).limit(1L).findFirst();
		if (appleOpt.isPresent()) {
			System.out.println("最重的苹果名称:" + appleOpt.get());
		}

	}

}

结果:

最重的苹果名称:黄元帅
import java.time.LocalDate;

/**
 * @author InJavaWeTrust
 */
public class Apple {
	
	private String variety;
	private int weight;
	private String color;
	private String placeOfOrigin;
	private LocalDate productionDate;
	
	public Apple() {
	}
	
	public Apple(String variety, int weight, String color, String placeOfOrigin, LocalDate productionDate) {
		this.variety = variety;
		this.weight = weight;
		this.color = color;
		this.placeOfOrigin = placeOfOrigin;
		this.productionDate = productionDate;
	}

	public String getVariety() {
		return variety;
	}
	public void setVariety(String variety) {
		this.variety = variety;
	}
	public int getWeight() {
		return weight;
	}
	public void setWeight(int weight) {
		this.weight = weight;
	}
	public String getColor() {
		return color;
	}
	public void setColor(String color) {
		this.color = color;
	}
	public String getPlaceOfOrigin() {
		return placeOfOrigin;
	}
	public void setPlaceOfOrigin(String placeOfOrigin) {
		this.placeOfOrigin = placeOfOrigin;
	}
	public LocalDate getProductionDate() {
		return productionDate;
	}
	public void setProductionDate(LocalDate productionDate) {
		this.productionDate = productionDate;
	}
	
	@Override
	public String toString() {
		return "Apple ["
				+ "variety="        + variety        + ", "
				+ "weight="         + weight         + ", "
				+ "color="          + color          + ", "
				+ "placeOfOrigin="  + placeOfOrigin  + ", "
				+ "productionDate=" + productionDate + 
				"]";
	}
	
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值