package org.example;
public class Transaction {
private Trader trader;
private int yearOfTransaction;
private int transactionAmount;
public Transaction() {
}
public Transaction(Trader trader, int yearOfTransaction, int transactionAmount) {
this.trader = trader;
this.yearOfTransaction = yearOfTransaction;
this.transactionAmount = transactionAmount;
}
public Trader getTrader() {
return trader;
}
public void setTrader(Trader trader) {
this.trader = trader;
}
public int getYearOfTransaction() {
return yearOfTransaction;
}
public void setYearOfTransaction(int yearOfTransaction) {
this.yearOfTransaction = yearOfTransaction;
}
public int getTransactionAmount() {
return transactionAmount;
}
public void setTransactionAmount(int transactionAmount) {
this.transactionAmount = transactionAmount;
}
@Override
public String toString() {
return "Transaction{" +
"trader=" + trader +
", yearOfTransaction=" + yearOfTransaction +
", transactionAmount=" + transactionAmount +
'}';
}
}
package org.example;
public class Trader {
private String name;
private String city;
public Trader() {
}
public Trader(String name, String city) {
this.name = name;
this.city = city;
}
public Trader(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
@Override
public String toString() {
return "Trader{" +
"name='" + name + '\'' +
", city='" + city + '\'' +
'}';
}
}
List<Transaction> list = new ArrayList();
list.add(new Transaction(new Trader("张大大", "上海"), 2006, 478));
list.add(new Transaction(new Trader("李四", "广东"), 2011, 9874));
list.add(new Transaction(new Trader("小王", "广东"), 2019, 2131));
list.add(new Transaction(new Trader("晓白", "深圳"), 2011, 3412));
list.add(new Transaction(new Trader("晓白", "深圳"), 2017, 2394));
list.add(new Transaction(new Trader("达尔温", "波西"), 2009, 3121));
list.stream()
.filter(e -> e.getYearOfTransaction() == 2011)
.sorted(Comparator.comparing(Transaction::getTransactionAmount).reversed())
.forEach(System.out::println);
list.stream()
.map(e -> e.getTrader().getCity())
.distinct()
.forEach(System.out::println);
list.stream()
.filter(e -> e.getTrader().getCity().equals("剑桥"))
.sorted(Comparator.comparing(x -> x.getTrader().getName()))
.forEach(System.out::println);
list.stream()
.map(e -> e.getTrader().getName())
.sorted(String::compareTo)
.forEach(System.out::println);
list.stream()
.filter(e -> e.getTrader().getCity().equals("米兰"))
.forEach(System.out::println);
list.stream()
.filter(e -> e.getTrader().getCity().equals("剑桥"))
.map(Transaction::getTransactionAmount)
.forEach(System.out::println);
Integer integer1 = list.stream()
.map(Transaction::getTransactionAmount)
.reduce(Integer::max).get();
System.out.println(integer1);
Integer integer2 = list.stream()
.map(Transaction::getTransactionAmount)
.max(Integer::max).get();
System.out.println(integer2);
Integer integer3 = list.stream()
.map(Transaction::getTransactionAmount)
.reduce(Integer::min).get();
System.out.println(integer3);
Integer integer4 = list.stream()
.map(Transaction::getTransactionAmount)
.min(Integer::compareTo).get();
System.out.println(integer4);