Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//revised from
//https://github.com/java8/Java8InAction

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class Main {
    public static void main(String... args) {
        List<Transaction> transactions = Arrays.asList(new Transaction(Currency.EUR, 1500.0),
                new Transaction(Currency.USD, 2300.0), new Transaction(Currency.GBP, 9900.0),
                new Transaction(Currency.EUR, 1100.0), new Transaction(Currency.JPY, 7800.0),
                new Transaction(Currency.CHF, 6700.0), new Transaction(Currency.EUR, 5600.0),
                new Transaction(Currency.USD, 4500.0), new Transaction(Currency.CHF, 3400.0),
                new Transaction(Currency.GBP, 3200.0), new Transaction(Currency.USD, 4600.0),
                new Transaction(Currency.JPY, 5700.0), new Transaction(Currency.EUR, 6800.0));

        Map<Currency, List<Transaction>> transactionsByCurrencies = transactions.stream()
                .collect(Collectors.groupingBy(Transaction::getCurrency));
        System.out.println(transactionsByCurrencies);

    }
}

class Transaction {
    private final Currency currency;
    private final double value;

    public Transaction(Currency currency, double value) {
        this.currency = currency;
        this.value = value;
    }

    public Currency getCurrency() {
        return currency;
    }

    public double getValue() {
        return value;
    }

    @Override
    public String toString() {
        return currency + " " + value;
    }
}

enum Currency {
    EUR, USD, JPY, GBP, CHF
}