拓展阅读
LINQ
术语“LINQ to Objects”指直接将 LINQ 查询与任何 IEnumerable<T>
集合一起使用。
可以使用 LINQ 来查询任何可枚举的集合,例如 Primitive Array、Object Array、 List、 Collection 或 Iterable 等等。
该集合可以是用户定义的集合,也可以是由 Java 开发包 API 返回的集合。
从根本上说,“LINQ to Objects”表示一种新的处理集合的方法。 采用 LINQ 方法,只需编写描述要检索的内容的声明性代码。
特性
-
实现了 LINQ to Objects 的所有 API。
-
支持更多 API 和元组。
-
支持 IEnumerable 和 Stream 互相转换。
-
支持 Android。
入门例子
Maven
<dependency>
<groupId>com.bestvike</groupId>
<artifactId>linq</artifactId>
<version>6.0.0</version>
</dependency>
用法
如果使用 java 8 或 java 9,建议用 lombok.var 或 lombok.val 代替复杂的返回类型。
如果使用 java 10 或更高版本,建议使用 var 代替复杂的返回类型。
拼接不为空的字符串。
String result = Linq.of("!@#$%^", "C", "AAA", "", "Calling Twice", "SoS", Empty)
.where(x -> x != null && x.length() > 0)
.aggregate((x, y) -> x + ", " + y);
System.out.println(result);
----
!@#$%^, C, AAA, Calling Twice, SoS
判断所有的正数是否全部为偶数。
boolean result = Linq.of(9999, 0, 888, -1, 66, -777, 1, 2, -12345)
.where(x -> x > 0)
.all(x -> x % 2 == 0);
System.out.println(result);
----
false
判断所有的正数是否存在任一偶数。
boolean result = Linq.of(9999, 0, 888, -1, 66, -777, 1, 2, -12345)
.where(x -> x > 0)
.any(x -> x % 2 == 0);
System.out.println(result);
----
true
在末尾追加一个数字并在头部插入两个数字。
String result = Linq.range(3, 2).append(5).prepend(2).prepend(1).format();
System.out.println(result);
----
[1, 2, 3, 4, 5]
计算整数序列的平均值。
double result = Linq.of(5, -10, 15, 40, 28).averageInt();
System.out.println(result);
----
15.6
连接两个整数序列。
String result = Linq.of(1, 2).concat(Linq.of(3, 4)).format();
System.out.println(result);
----
[1, 2, 3, 4]
参考资料
本文由博客一文多发平台 OpenWrite 发布!