Atitit 实现java的linq 以及与stream api的比较
Atitit 实现java的linq 以及与stream api的比较
1.1. Linq 和stream api的关系,以及主要优缺点1
Linq来源于sql,而我们知道在数据查询领域,sql是标准化的一个dsl。。
1.1. Linq 和stream api的关系,以及主要优缺点
Stream更加的通用化,linq比较专一化,专注于数据查询的dsl。。Linq就是特殊化的stream。。
此外,linq更加的dsl ,更加方便简洁。。
stream相对底层一些,更加灵活,但是稍微啰嗦些。。
1.2. Linq 与stream api的适用场景
大部分场合linq更加好用,毕竟sql是标准化的数据查询dsl api。。
不过少部分场合,简单查询一个list的情况下,可能linq显得有点啰嗦,stream会更加简洁些。。
此外,在非数据查询领域,使用stream会更加好些。。
1.3. Java中的linq
Java 的jdk默认没有实现linq api。只能第三方类库实现了。
虽然java有个linq4j类库,但是貌似编译不过,不好使用,只好自己实现linq api即可。。
Java实现linq,主要利用static import
比如实现对一个list做group聚合查询。。比如根据月份统计充值总金额
List result = Select(“month,sum(rechg) as total”).from(list).groupby(“month”).orderby(“total,desc”);
作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 )
汉字名:艾提拉(艾龙), EMAIL:1466519819@qq.com
转载请注明来源: http://www.cnblogs.com/attilax/
Atiend
Atitit 实现java的linq 以及与stream api的比较的更多相关文章
- java 8 学习三(Stream API)
		
集合讲的是数据,流讲的是计算. 流的数据处理功能支持类似于数据库的操作,以及函数式编程语言中的常用操作,如filter. map. reduce. find. match. sort等. 流操作可以顺 ...
 - Atitit. C#  java 的api 目录封装结构映射总结
		
Atitit. C# java 的api 目录封装结构映射总结 C# java ref System.Reflection System.Type, java.lang.ref concurrent ...
 - Java 使用 Stream API 筛选 List
		
前言 上课的时候看到老师用迭代器来遍历 List 中的元素的时候,我的内心是极其嫌弃的,这种迭代方法不能直接访问当前的元素,而且写起来也麻烦.于是上网查了查 Java 有没有类似于 Linq 的东西, ...
 - Atitit. C#  java 的api 文件夹封装结构映射总结
		
Atitit. C# java 的api 文件夹封装结构映射总结 C# java ref System.Reflection System.Type. java.lang.ref concurren ...
 - Java 8 Stream API详解--转
		
原文地址:http://blog.csdn.net/chszs/article/details/47038607 Java 8 Stream API详解 一.Stream API介绍 Java8引入了 ...
 - java的LINQ :Linq4j简明介绍
		
开发JAVA一段时间,面临的一大问题就是集合操作,习惯了LINQ的简洁语法,对JAVA的集合操作实在是无甚好感,只能通过C系的循环实现筛选等操作,由于没有延迟执行特性,内存占用实在不敢恭维.因此便在网 ...
 - Atitit.java eval功能的实现  Compiler API
		
Atitit.java eval功能的实现 Compiler API 输出echo2 输出目录配置2 针对编译器,JDK 设计了两个接口,分别是 JavaCompiler 和JavaCompiler ...
 - atitit.为什么java体系开发效率这样低的原因and解决
		
atitit.为什么java体系开发效率这样低的原因and解决 #---开发理念问题(影响度:很大的,2-3倍效率) mvc<>webform server control ajax< ...
 - Upgrading to Java 8——第四章 The Stream API
		
在这章中我们将学习Stream API,在JDK 8 中的一项新的特性.为了理解这一章的主题,你需要知道如何使用Lambda表达式和java.util.function里的预定义的函数式接口. 一个S ...
 
随机推荐
- 除法取模练习(51nod 1119 & 1013 )
			
题目:1119 机器人走方格 V2 思路:求C(m+n-2,n-1) % 10^9 +7 (2<=m,n<= 1000000) 在求组合数时,一般都通过双重for循环c[i][ ...
 - Spring 笔记
			
依赖注入(Dependency Injection DI) 通过依赖注入,对象的依赖关系将由系统中负责协调对象的第三方组件在创建对象的时候进行设定.(p6 spring之旅) 在创建类的时候需要依赖的 ...
 - WinForm程序关闭窗体后杀死进程
			
调用this.Close();后监听Browser_FormClosed加作处理 this.FormClosed += new System.Windows.Forms.FormClosedEvent ...
 - 自己封装的一个无限滚动 mark 待传
			
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
 - P1907飞扬的小鸟
			
P1907飞扬的小鸟 描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙.如果小鸟一不小心撞到了水管或 ...
 - PYTHON学习之路_PYTHON基础(4)
			
学习内容: 1.Python函数的基本语法 2.Python函数的返回值与变量 3.Python嵌套函数 4.Python递归函数及实例(二分查找) 5.Python匿名函数 6.Python内置方法 ...
 - JAVA设计模式--工厂方法模式
			
工厂方法设计模式 抽象工厂角色: 这是工厂方法模式的核心,它与应用程序无关.是具体工厂角色必须实现的接口或者必须继承的父类.在java中它由抽象类或者接口来实现.具体工厂角色:它含有和具体业务逻辑有关 ...
 - php 正则
			
1.中括号 [0-9]匹配0-9 [a-z]匹配a-z小写字母 [A-Z]匹配A-Z大写字母 [a-zA-Z]匹配所有大小写字母 可以使用ascii来制定更多 2.量词 p+匹配至少一个含p的字符串 ...
 - Python成长笔记 - 基础篇 (十二)
			
本节内容 ORM介绍 sqlalchemy安装 sqlalchemy基本使用 多外键关联 多对多关系 表结构设计作业 主题:学员管理系统 需求: 用户角色,讲师\学员, 用户登陆后根据角色不同,能做的 ...
 - inno 实现水波特效
			
安装Inno Setup时如果选择了水波效果插件(如下图),将在Inno Setup的安装目录下自带有水波特效的例子,如路径:C:\Program Files (x86)\Inno Setup 5\E ...