linq4j java8_java的LINQ :Linq4j简明介绍

本文介绍了linq4j,一个适用于JAVA的LINQ移植工具,旨在简化集合操作。文章涵盖linq4j的安装、扩展功能(如Enumerable接口、Function委托、Expressions)以及使用示例,展示了如何通过linq4j实现筛选、排序、类型转换等操作,对比了与.NET LINQ的差异,并对其在JAVA8之前的实用性进行了讨论。
摘要由CSDN通过智能技术生成

开发JAVA一段时间,面临的一大问题就是集合操作,习惯了LINQ的简洁语法,对JAVA的集合操作实在是无甚好感,只能通过C系的循环实现筛选等操作,由于没有延迟执行特性,内存占用实在不敢恭维。因此便在网上找到了linq4j, 一个针对JAVA的linq移植版本。下面的文章,就会对这一工具进行简要的介绍。

一. 安装

它并没有部署在标准的maven库里,因此需要手动编译生成。使用标准命令行:

48304ba5e6f9fe08f3fa1abda7d326ab.png

git clone git://github.com/julianhyde/linq4j.git linq4j #git克隆到linq4j目录下

mvn compile #编译

mvn test #测试

mvn jar:jar #生成jar包

48304ba5e6f9fe08f3fa1abda7d326ab.png

使用了maven以后,工作效率大大提升,.当然NET下也有类似的工具nuget.

二. Linq4j的扩展功能

由于JAVA目前还没有匿名函数和扩展函数,而且内置的标准迭代器接口Iterator功能偏弱。 因此Linq4j增加了一个一系列泛型接口和函数:

1.  新迭代器接口: Enumerable,它扩展了Iterator的功能

2.  一组类似“委托”性质的函数:

(1)返回R的泛型委托:public interface Function {}

(2)接收T, 返回R的泛型委托:public interface Function1 {}

(3)  接收T1,T2, 返回R的泛型委托,定义如下:

48304ba5e6f9fe08f3fa1abda7d326ab.png

/*** Function with two parameters.

*

*@param result type

*@param type of parameter 1

*@param type of parameter 2*/

public interface Function2 extends Function{

R apply(T1 v1, T2 v2);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值