`

java利用linq4j实现linq

    博客分类:
  • java
 
阅读更多

public class Person implements Comparable<Person>{
	public int Age;
	public String Name;
	public boolean Sex;

	public Person(int age, String name, boolean sex) {
		super();
		Age = age;
		Name = name;
		Sex = sex;
	}

	@Override
	public int compareTo(Person other) {
		int result=Name.compareTo(other.Name);
		return result;
	}



public class LinqTest {
	@Test
	public void name() {
		Person p1=new Person(21,"21",true);
		Person p2=new Person(22,"22",false);
		Person p4=new Person(23,"24",true);
		Person p3=new Person(23,"23",true);
		
		List<Person> list=new ArrayList<>();
		list.add(p1);
		list.add(p2);
		list.add(p3);
		list.add(p4);
		
		
		
		List<String> nameList= Linq4j.asEnumerable(list).where(new Predicate1<Person>() {
			public boolean apply(Person arg0) {
                //只要sex为true的
				return arg0.Sex;
			}
		}).select(new Function1<Person, String>() {

			public String apply(Person arg0) {
				 //只要Person的name字段,
				return arg0.Name;
			}
		}).orderByDescending(new Function1<String, String>() {

			public String apply(String arg0) {
				//降序排列
				return arg0;
			}
		}).toList();

		assertEquals(3, nameList.size());
		assertEquals("24", nameList.get(0));
		assertEquals("23", nameList.get(1));
		assertEquals("21", nameList.get(2));
		
		
		
		
		List<Person> list2= Linq4j.asEnumerable(list).where(new Predicate1<Person>() {
			public boolean apply(Person arg0) {
                //只要sex为true的
				return arg0.Sex;
			}
		}).select(new Function1<Person, Person>() {

			public Person apply(Person arg) {
				return arg;
			}
		}).orderByDescending(new Function1<Person, Person>() {

			public Person apply(Person arg) {
				//降序排列
				return arg;
			}
		}).toList();
		
		assertEquals(3, list2.size());
		assertEquals(p4, list2.get(0));
		assertEquals(p3, list2.get(1));
		assertEquals(p1, list2.get(2));
		
	}

}


也可以参考:https://github.com/huangyunbin/codes/tree/master/src/main/java/com/hyb/util/linq
0
0
分享到:
评论

相关推荐

    calcite-linq4j-1.2.0-incubating-API文档-中文版.zip

    标签:linq4j、apache、calcite、jar包、java、API文档、中文版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准...

    linq4j.zip

    开发者可以通过解压这个文件,了解linq4j的实现细节、如何构建和运行项目,以及如何在自己的项目中使用linq4j。 **应用场景** 1. **数据过滤和转换**:linq4j可以帮助开发者在Java集合中快速筛选满足特定条件的...

    calcite-linq4j-1.2.0-incubating.jar中文-英文对照文档.zip

    中文-英文对照文档,中英对照文档,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【***.jar中文文档.zip】,再解压其中的 【***-...

    linq:LINQ to Java的对象

    LINQ到对象(Java) 术语“对象的LINQ”是指将LINQ查询与任何IEnumerable&lt;T&gt; 。 您可以使用LINQ查询任何可枚举的集合,例如Primitive Array , Object Array , List , Collection或Iterable等。 该集合可以是用户...

    基于jabber协议的linq聊天群发工具源代码

    描述中提到的“linq聊天群发工具”,意味着这个源代码实现了一个功能,能够利用LINQ对基于jabber协议的聊天系统进行消息群发。这可能是为了实现大规模的通知、广播消息或者营销目的,通过自动化的方式一次性向多个...

    在word中动态增加表格并写入数据

    本文将详细介绍如何利用C#编程语言实现在Word文档中动态创建表格,并将数据写入到表格中的过程。 #### 前置知识与工具介绍 在开始之前,我们需要对以下概念有所了解: 1. **Microsoft Word API**:这是Microsoft ...

    Windows.PowerShell.Cookbook

    - **J2EE/Java**:尽管主要运行于 Windows 平台,但也可以通过 Java Interop Services 或者 J# 与 Java 应用交互。 - **LINQ**:PowerShell 4.0 及以上版本支持 LINQ 查询表达式,可以直接使用 LINQ 来筛选和操作...

    xml自学指导

    5. **DOM4J、JDOM等第三方库**:提供了更方便的API,增强了DOM的功能。 三、.NET的XML编程 在.NET框架中,XML处理主要包括: 1. **XmlDocument类**:.NET的DOM实现,类似于Java中的DOM。 2. **XmlReader和Xml...

    Open J# Compiler-开源

    Open J#项目的目标是为Java开发者提供在.NET环境下的开发工具,让他们能够利用.NET Framework的各种功能和库。 描述中提到,Open J#是一个Java编译器,专为.NET Framework设计。这意味着它可以将Java源代码转换成...

    多语言实现贪心算法详解:从钱币找零到哈夫曼编码的编程实践与应用场景分析

    接下来,我们将探讨几种常见的贪心算法问题,并分别用Python、JavaScript、Java、C++和C#进行实现。 #### 三、案例分析与代码实现 ##### 1. Python - 钱币找零问题 ```python def coinChange(coins, amount): # ...

    C#中英文对照翻译7页

    * 可以与从 Visual Basic、Visual C++、Visual J# 的 .NET 版本或者其他 20 多种符合 CTS 的语言中的任何一种生成的代码进行交互 * 单一程序集可能包含用不同 .NET 语言编写的多个模块,并且类型可以相互引用

    C中英文对照文献.pdf

    因为由 C# 编译器生成的 IL 代码符合公共类型规范 (CTS),因此从 C# 生成的 IL 代码可以与从 Visual Basic、Visual C++、Visual J# 的 .NET 版本或者其他 20 多种符合 CTS 的语言中的任何一种生成的代码进行交互。...

    C#运动控制卡的案例

    C#的历史可以追溯到1996年,当时微软的安德斯·海尔斯伯格开始开发Visual J++,但由于与SUN公司关于Java平台中立性的争议,微软最终转向开发C#。C# 1.0于2000年发布,随后的版本不断更新,增加了许多新特性,如泛型...

    2021-2022计算机二级等级考试试题及答案No.15841.docx

    17. Java变量赋值:执行语句后,i=2, j=2。 18. 1字节等于8位。 19. Access数据库类型:Access是一种关系型数据库管理系统。 20. LINQ数据操作:LINQ(Language Integrated Query)是C#和VB.NET的扩展,可以用于...

    Excel报表生成方法

    3. **填充数据**:利用循环或LINQ查询将数据填充到工作表的单元格中,可以设置单元格样式、公式等。 4. **保存文件**:最后,将工作簿保存为Excel文件,用户可以下载或在本地查看。 以下是一个使用EPPlus生成Excel...

    apache-calcite-tutorial:https

    例如,可以通过 `SqlParser` 类进行 SQL 解析,通过 `RexBuilder` 创建表达式,通过 `Optiq`(Linq4j)进行查询转换。 - **扩展性**:开发者可以创建自定义的 SQL 函数、运算符和访问方法,通过继承和实现 Calcite ...

    是关于XML方面 的。

    3. DOM4J、JDOM、XOM等库提供了Java中处理XML的便利工具。 4. LINQ to XML是.NET Framework中的XML处理方式,结合了DOM和SAX的优点。 XML Schema和DTD(Document Type Definition): 1. XML Schema用于定义XML文档...

    c#基础语法&demo.pdf

    C#(读作C Sharp)是由微软设计的一种现代编程语言,它结合了C++的强大特性和Java的易用性,旨在为开发者提供一种“简单、现代、类型安全且面向对象”的编程工具。C#自2000年发布以来,已成为.NET框架的核心组成部分...

    2021-2022计算机二级等级考试试题及答案No.14841.docx

    这些题目涵盖了计算机基础知识的多个方面,包括网页字符、计算机历史、字符串处理、数据库概念、数据结构、编程语言特性、数据库管理系统、操作系统、算法分析、网络知识、程序设计、JSP和Web开发、Java编程、软件...

Global site tag (gtag.js) - Google Analytics