java8-03-lambda 内置函数
2019年2月27日大约 1 分钟
Predicate
Predicate 定义了一个 test()
方法,接受泛型 T 的对象,并且返回一个 boolean 值。
- 定义
/**
* 过滤器: 返回满足条件的列表
* @param list
* @param predicate
* @param
* @return
*/
private static List filter(List list, Predicate predicate) {
List result = new LinkedList<>();
for(T t : list) {
if(predicate.test(t)) {
result.add(t);
}
}
return result;
}
- 测试
public static void main(String[] args) {
List stringList = Arrays.asList("A", "", "C", "Dog", "Delete");
List result = filter(stringList, (String s)->s.startsWith("D"));
System.out.println(result);
}
- 结果
[Dog, Delete]
Consumer
Consumer 定义了一个名为 accept()
的方法。接受泛型 T 的对象,没有返回值(void)。
- 定义
/**
* 循环执行
* @param list 列表
* @param consumer
* @param
*/
private static void foreach(List list, Consumer consumer) {
for(T t : list) {
consumer.accept(t);
}
}
- 测试
public static void main(String[] args) {
List stringList = Arrays.asList("A", "", "C", "Dog", "Delete");
foreach(stringList, (String s)-> System.out.println(s));
}
- 结果
A
C
Dog
Delete
Function
Function 定义了一个 apply()
方法,接受一个泛型 T 的参数,返回一个类型 R 的对象。
/**
* 将一种元素按照规则映射成为另外一种元素
* @param list
* @param function
* @param
* @param
* @return
*/
private static List map(List list, Function function) {
List result = new LinkedList<>();
for(T t : list) {
result.add(function.apply(t));
}
return result;
}
- 测试
public static void main(String[] args) {
List stringList = Arrays.asList("A", "", "C", "Dog", "Delete");
List result = map(stringList, (String s)->s.toLowerCase());
System.out.println(result);
}
- 结果
[a, , c, dog, delete]
贡献者
binbin.hou