Java8实战Lambda和Stram API学习

it2022-05-09  24

public  class Trader{        private String name;    private String city;    public Trader(String n, String c){        this.name = n;        this.city = c;    }    public String getName(){        return this.name;    }    public String getCity(){        return this.city;    }    public void setCity(String newCity){        this.city = newCity;    }    public String toString(){        return "Trader:"+this.name + " in " + this.city;    }}

 

public class Transaction{    private Trader trader;    private int year;    private int value;    public Transaction(Trader trader, int year, int value)    {        this.trader = trader;        this.year = year;        this.value = value;    }    public Trader getTrader(){         return this.trader;    }    public int getYear(){        return this.year;    }    public int getValue(){        return this.value;    }        public String toString(){        return "{" + this.trader + ", " +               "year: "+this.year+", " +               "value:" + this.value +"}";    }}

 

public class PuttingIntoPractice {    public static void main(String... args) {        Trader raoul = new Trader("Raoul", "Cambridge");        Trader mario = new Trader("Mario", "Milan");        Trader alan = new Trader("Alan", "Cambridge");        Trader brian = new Trader("Brian", "Cambridge");                List<Transaction> transactions = Arrays.asList(new Transaction(brian, 2011, 300), new Transaction(raoul, 2012, 1000), new Transaction(raoul, 2011, 400), new Transaction(mario, 2012, 710), new Transaction(mario, 2012, 700), new Transaction(alan, 2012, 950));                // Query 1: Find all transactions from year 2011 and sort them by value (small to high).        List<Transaction> tr2011 = transactions.stream().filter(transaction -> transaction.getYear() == 2011).sorted(comparing(Transaction::getValue)).collect(toList());        System.out.println(tr2011);                // Query 2: What are all the unique cities where the traders work?        List<String> cities = transactions.stream().map(transaction -> transaction.getTrader().getCity()).distinct().collect(toList());        System.out.println(cities);                // Query 3: Find all traders from Cambridge and sort them by name.        List<Trader> traders = transactions.stream().map(Transaction::getTrader).filter(trader -> trader.getCity().equals("Cambridge")).distinct().sorted(comparing(Trader::getName)).collect(toList());        System.out.println(traders);                // Query 4: Return a string of all traders’ names sorted alphabetically.        String traderStr = transactions.stream().map(transaction -> transaction.getTrader().getName()).distinct().sorted().reduce(" ", (n1, n2) -> n1 + n2);        System.out.println(traderStr);                // Query 5: Are there any trader based in Milan?        boolean milanBased = transactions.stream().anyMatch(transaction -> transaction.getTrader().getCity().equals("Milan"));        System.out.println(milanBased);                // Query 6: Update all transactions so that the traders from Milan are set to Cambridge.        transactions.stream().map(Transaction::getTrader).filter(trader -> trader.getCity().equals("Milan")).forEach(trader -> trader.setCity("Cambridge"));        System.out.println(transactions);                // Query 7: What's the highest value in all the transactions?        int highestValue = transactions.stream().map(Transaction::getValue).reduce(0, Integer::max);        System.out.println(highestValue);    }}

转载于:https://www.cnblogs.com/zhc-hnust/p/8830877.html


最新回复(0)