https://www.gravatar.com/avatar/8e10df0bad4c56b3464cd715f8d96c46?s=240&d=mp

使用流收集数据

假设有一个事务列表,你希望根据货币对它们进行分组。在Java 8之前,即使是这样一个简单的例子也很难实现,如下所示:

Map<Currency, List<Transaction>> transactionsByCurrencies = new HashMap<>();
for (Transaction transaction : transactions) {
    Currency currency = transaction.getCurrency();
	List<Transaction> transactionsForCurrency = transactionsByCurrencies.get(currency);
	if (transactionsForCurrency == null) {
		transactionsForCurrency = new ArrayList<>();
		transactionsByCurrencies.put(currency, transactionsForCurrency);
	}
	transactionsForCurrency.add(transaction);
}

在Java 8之后,仅用一条语句就可以获得完全相同的结果:

使用流

过滤

使用谓词过滤

filter方法接受一个谓词函数为参数,并返回包含所有匹配谓词的元素的流。如下例:

List<Dish> vegetarianMenu = menu.stream().filter(Dish::isVegetarian).collect(toList());

如下图所示:

/images/2019/07/11/filter.png

流介绍

流是什么

流是对Java API的更新,允许你以声明式的方式操作数据集合。首先看一个例子,假设你想获得所有热量低于400卡的菜肴的名字,并按热量排序。在Java 8之前,你可以这样做:

Lambda表达式

Lambda概述

lambda表达式没有名称,但是它有参数列表,函数体和返回类型,还可能包含一个异常列表。

  • 匿名,lambda表达式不像方法一样有一个显式的名字
  • 函数,lambda表达式不像方法一样关联到一个特定的类
  • 传递,lambda表达式可以像函数参数一样传递,或者保存到变量里面
  • 简洁,不需要像匿名类一样写很多样板代码

lambda基本语法有2种

Git配置多个SSH-Key

转自这里

背景

当有多个git账号时,比如:

  • 一个gitee,用于公司内部的工作开发;
  • 一个github,用于自己进行一些开发活动;

解决方法

1.生成一个公司用的SSH-Key