如何做网站的优化和推广,ppt免费下载模板网站,电子商务网站建设任务分解,重庆建设摩托车价格作为JSR 335的一部分#xff0c; Lambda表达式已从Java 8开始引入Java语言#xff0c;这是Java语言的一个重大变化。 如果您想了解更多关于Lambda表达式以及JSR 335的信息#xff0c;可以访问以下资源#xff1a; 在OpenJDK上的Lambda项目 。 Lambda常见问题解答 。 另一… 作为JSR 335的一部分 Lambda表达式已从Java 8开始引入Java语言这是Java语言的一个重大变化。 如果您想了解更多关于Lambda表达式以及JSR 335的信息可以访问以下资源 在OpenJDK上的Lambda项目 。 Lambda常见问题解答 。 另一篇详细讨论lambda表达式支持的博客文章 JSR 335的规范草案 。 如果我研究作为JSR 335一部分进行的每项功能/更改那么这对我以及您都会感到困惑。 因此为了使更改更容易理解我将选择一些用例并尝试应用作为JSR一部分添加的功能。 在开始之前您必须下载支持lambda表达式语法的Netbeans版本以及具有JSR 335更改的JDK构建。 可以从此处下载具有JSR 335更改的JDK构建即对lambda表达式的支持以及对collections API的增强。 Netbeans具有对Lambda表达式的实验支持。 一旦下载了Netbeans每晚构建zip您将必须解压缩内容然后导航到bin目录以启动Netbeans。 并且一旦下载并提取了具有JSR335支持的JDK的内容就必须在Netbeans中的“工具”-“ Java平台”菜单中创建一个新平台以便在JSR335更改后使用JDK。 添加Java平台弹出窗口类似于 现在让我们考虑一个包含以下内容的列表作为示例 ListPerson personList new ArrayList();
personList.add(new Person(Virat, Kohli));
personList.add(new Person(Arun, Kumar));
personList.add(new Person(Rajesh, Mohan));
personList.add(new Person(Rahul, Dravid)); 并允许使用Java 8之前的版本或当前的方法根据firstName对列表进行排序 //Sorting using Anonymous Inner class.
Collections.sort(personList, new ComparatorPerson(){public int compare(Person p1, Person p2){return p1.firstName.compareTo(p2.firstName);}
}); 如果您正在使用支持Lambda表达式的Netbeans夜间构建 则IDE将提供提示内容为 然后使用Netbeans支持将上面的代码替换为Lambda表达式我们得到 //Anonymous Inner class replaced with Lambda expression.
Collections.sort(personList, (Person p1, Person p2) - p1.firstName.compareTo(p2.firstName)); 人们可以看到使用Lambda表达式所减少的冗长程度。 而且现在的代码比使用Anonymous内部类时更清晰。 通过从参数中删除类型信息可以使它更加简洁因为从使用lambda表达式的上下文中可以推断出类型信息。 //Lambda expression with type information removed.
Collections.sort(personList, (p1, p2) - p1.firstName.compareTo(p2.firstName)); 让我们剖析上述lambda表达式以了解其组成部分。 Lambda表达式的一般语法为- {} OR-单个语句/表达式。 当lambda表达式的主体必须是一个块时将使用- {}版本而当lambda表达式具有单个语句/表达式时将使用另一个版本。 在上述情况下只有一个表达式因此此处不使用块。 用于声明lambda表达式的参数。 参数可以具有类型信息或者如果可以从上下文中推断出类型则可以跳过这些参数。 在我们的例子中类型信息是从上下文中推断出来的。 另一个观察结果是lambda表达式等效于覆盖Comparator类中存在的compare方法。 并且它还替换了创建Anonymous Inner类的代码以扩展Comparator类。 可以对上述代码进行的另一项更改是“排序”方法已作为JSR 335更改的一部分添加到List类中我们可以使用该方法对列表进行排序 //Using sort method in List.
personList.sort((p1, p2) - p1.firstName.compareTo(p2.firstName)); 请注意排序类存在于List类中该类是支持JSR 335的JDK的一部分。 这只是在现有代码中使用Lambda表达式的示例示例。 有关更多详细信息请访问我在帖子开头分享的链接。 参考 在我们的JCG合作伙伴 Mohamed Sanaulla的“ 经验无限”博客中 使用NetBeans Lambda支持使用Lambda表达式对Java 8中的列表进行排序 。 翻译自: https://www.javacodegeeks.com/2013/03/using-lambda-expression-to-sort-a-list-in-java-8-using-netbeans-lambda-support.html