{"id":39514,"date":"2023-02-24T22:37:40","date_gmt":"2022-12-19T21:03:27","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%86c%e7%9a%84linq%e7%a7%bb%e6%a4%8d%e5%88%b0java%e4%b8%8a%e5%b0%9d%e8%af%95%e4%ba%86%e4%b8%80%e4%b8%8b-jlinqer\/"},"modified":"2024-04-29T16:07:17","modified_gmt":"2024-04-29T08:07:17","slug":"%e6%88%91%e5%b0%86c%e7%9a%84linq%e7%a7%bb%e6%a4%8d%e5%88%b0java%e4%b8%8a%e5%b0%9d%e8%af%95%e4%ba%86%e4%b8%80%e4%b8%8b-jlinqer","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%86c%e7%9a%84linq%e7%a7%bb%e6%a4%8d%e5%88%b0java%e4%b8%8a%e5%b0%9d%e8%af%95%e4%ba%86%e4%b8%80%e4%b8%8b-jlinqer\/","title":{"rendered":"\u6211\u5c06C#\u7684LINQ\u79fb\u690d\u5230Java\u4e0a\u5c1d\u8bd5\u4e86\u4e00\u4e0b &#8211; jLinqer"},"content":{"rendered":"<h1>\u6211\u60f3\u5728Java\u4e2d\u4f7f\u7528LINQ\u3002<\/h1>\n<p>\u6211\u521b\u5efa\u4e86\u4e00\u4e2a\u53ef\u4ee5\u5728Java\u4e2d\u4f7f\u7528\u7684LINQ\u5e93\u3002\u5b83\u53ef\u4ee5\u89e3\u51b3\u5728Java8\u7684Stream\u4e2d\u65e0\u6cd5\u5f88\u597d\u8868\u8fbe\u7684\u56f0\u6270\uff0c\u800cC#\u7684LINQ\u53ef\u4ee5\u6d41\u7545\u5730\u8868\u8fbe\u3002<\/p>\n<h1>jLinqer<\/h1>\n<p>jLinqer\u662f\u4e00\u4e2a\u53ef\u4ee5\u5728Java\u4e2d\u4f7f\u7528LINQ\uff08Language INtegrated Query: \u7edf\u5408\u8bed\u8a00\u67e5\u8be2\uff09\u7684\u5e93\u3002\u5b83\u8fd8\u6dfb\u52a0\u4e86\u4e00\u4e9bC#\u4e2d\u7684LINQ\u548cJava8\u7684Stream\u6240\u7f3a\u5c11\u7684\u529f\u80fd\uff0c\u4f8b\u5982selectMany\uff0cUnion\uff0cIntersect\uff0cExcept\u7b49\u3002<\/p>\n<h2>\u600e\u4e48\u7528<\/h2>\n<p>\u5982\u679c\u8981\u5728Gradle\u4e2d\u4f7f\u7528\uff0c\u8bf7\u6ce8\u518c\u4ee5\u4e0b\u5185\u5bb9\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"dl\">'<\/span><span class=\"s1\">com.github.jlinqer:jlinqer:1.0.0<\/span><span class=\"dl\">'<\/span>\r\n<\/code><\/pre>\n<p>\u5982\u679c\u60a8\u5728Maven\u4e2d\u4f7f\u7528\uff0c\u8bf7\u6ce8\u518c\u4ee5\u4e0bpom.xml\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code>\r\n<span class=\"nt\">&lt;dependency&gt;<\/span>\r\n    <span class=\"nt\">&lt;groupId&gt;<\/span>com.github.jlinqer<span class=\"nt\">&lt;\/groupId&gt;<\/span>\r\n    <span class=\"nt\">&lt;artifactId&gt;<\/span>jlinqer<span class=\"nt\">&lt;\/artifactId&gt;<\/span>\r\n    <span class=\"nt\">&lt;version&gt;<\/span>1.0.0<span class=\"nt\">&lt;\/version&gt;<\/span>\r\n<span class=\"nt\">&lt;\/dependency&gt;<\/span>\r\n\r\n<\/code><\/pre>\n<p>\u5982\u679c\u60a8\u4e0d\u4f7f\u7528Maven\uff0c\u5e76\u4e14\u76f4\u63a5\u4f7f\u7528jLinqer\u7684jar\u6587\u4ef6\uff0c\u8bf7\u4ece\u4ee5\u4e0b\u5730\u5740\u4e0b\u8f7d\u3002<\/p>\n<p>Maven\uff0c&#8221;jLinqer&#8221;\uff0chttps:\/\/oss.sonatype.org\/content\/groups\/public\/com\/github\/jlinqer\/jlinqer\/1.0.0\/jlinqer-1.0.0.jar<\/p>\n<h2>LINQ &#8211; jLinqer\u517c\u5bb9\u77e9\u9635<\/h2>\n<div>\n<div class=\"post-table\">\u6a5f\u80fdLINQ(C#)jLinqer(Java)Stream(Java)<strong>\u3010\u57fa\u672c\u3011<\/strong><\/p>\n<p>\u62bd\u51faWhere<a href=\"#where\">where<\/a>filter\u5c04\u5f71Select<a href=\"#select\">select<\/a>map\u4e26\u3079\u66ff\u3048(\u6607\u9806)OrderBy<a href=\"#orderby\">orderBy<\/a>sorted\u4e26\u3079\u66ff\u3048(\u964d\u9806)OrderByDescending<a href=\"#orderbydescending\">orderByDescending<\/a>n\/a\u5f8c\u7d9a\u3092\u4e26\u3079\u66ff\u3048(\u6607\u9806)ThenBy<a href=\"#thenby\">thenBy<\/a>n\/a\u5f8c\u7d9a\u3092\u4e26\u3079\u66ff\u3048(\u964d\u9806)ThenByDescending<a href=\"#thenbydescending\">thenByDescending<\/a>n\/a\u5e73\u5766\u5316\u3057\u3066\u5c04\u5f71SelectMany<a href=\"#selectmany\">selectMany<\/a>flatMap<strong>\u3010\u62bd\u51fa\u7cfb\u3011<\/strong><\/p>\n<p>\uff4e\u4ef6\u98db\u3070\u3059Skip<a href=\"#skip\">skip<\/a>skip\u6761\u4ef6\u3092\u6e80\u305f\u3059\u307e\u3067\u98db\u3070\u3059SkipWhile<a href=\"#skipwhile\">skipWhile<\/a>n\/a\uff4e\u4ef6\u307e\u3067\u6d41\u3059Take<a href=\"#take\">take<\/a>limit\u6761\u4ef6\u3092\u6e80\u305f\u3059\u307e\u3067\u6d41\u3059TakeWhile<a href=\"#takewhile\">takeWhile<\/a>n\/a<strong>\u3010\u5408\u6210\u7cfb\u3011<\/strong><\/p>\n<p>\u9023\u7d50Concat<a href=\"#concat\">concat<\/a>concat\u7a4d\u96c6\u5408Intersect<a href=\"#intersect\">intersect<\/a>n\/a\u548c\u96c6\u5408Union<a href=\"#union\">union<\/a>n\/a\u5dee\u96c6\u5408Except<a href=\"#except\">except<\/a>n\/a\u5185\u90e8\u7d50\u5408Join<a href=\"#join\">join<\/a>n\/a\u5916\u90e8\u7d50\u5408GroupJoin<a href=\"#groupjoin\">groupJoin<\/a>n\/a\u4e26\u3073\u3092\u9006\u306b\u3059\u308bReverse<a href=\"#reverse\">reverse<\/a>n\/a2\u3064\u306e\u5024\u3092\u63c3\u3048\u3066\u6d41\u3059Zip<a href=\"#zip\">zip<\/a>n\/a<strong>\u3010\u30b0\u30eb\u30fc\u30d7\u5316\u3001\u96c6\u8a08\u7cfb\u3011<\/strong><\/p>\n<p>\u91cd\u8907\u3092\u7121\u304f\u3059Distinct<a href=\"#distinct\">distinct<\/a>distinct\u7573\u307f\u8fbc\u307fAggregate<a href=\"#aggregate\">aggregate<\/a>reduce\u30b0\u30eb\u30fc\u30d7\u5316GroupBy<a href=\"#groupby\">groupBy<\/a>Collectors.groupingBy\u5e73\u5747Average<a href=\"#average\">averageXXX<\/a>Collectors.summarizingXXX\u4ef6\u6570Count<a href=\"#count\">count<\/a>n\/a\u4ef6\u6570LongCount<a href=\"#count\">longCount<\/a>count\u6700\u5927Max<a href=\"#max\">max<\/a>max\u6700\u5c0fMin<a href=\"#min\">min<\/a>min\u5408\u8a08Sum<a href=\"#sum\">sumXXX<\/a>Collectors.summarizingXXX\u5148\u982dFirst<a href=\"#firstordefault\">first<\/a>findFirst\u5148\u982dFirstOrDefault<a href=\"#firstordefault\">firstOrDefault<\/a>n\/a\u7d42\u7aefLast<a href=\"#lastordefault\">last<\/a>n\/a\u7d42\u7aefLastOrDefault<a href=\"#lastordefault\">lastOrDefault<\/a>n\/a1\u4ef6\u306e\u5024\u3092\u5f97\u308bSingle<a href=\"#singleordefault\">single<\/a>n\/a1\u4ef6\u306e\u5024\u3092\u5f97\u308bSingleOrDefault<a href=\"#singleordefault\">singleOrDefault<\/a>n\/a\u7a7a\u306a\u3089\u65e2\u5b9a\u5024\u3092\u8fd4\u3059DefaultIfEmpty<a href=\"#defaultifempty\">defaultIfEmpty<\/a>n\/a\u6307\u5b9a\u756a\u76ee\u306e\u8981\u7d20\u53d6\u5f97ElementAt<a href=\"#elementatordefault\">elementAt<\/a>n\/a\u6307\u5b9a\u756a\u76ee\u306e\u8981\u7d20\u53d6\u5f97ElementAtOrDefault<a href=\"#elementatordefault\">elementAtOrDefault<\/a>n\/a\u5168\u30c7\u30fc\u30bf\u304c\u6761\u4ef6\u306b\u30de\u30c3\u30c1\u3059\u308b\u304b\uff1fAll<a href=\"#all\">all<\/a>allMatch\u3044\u305a\u308c\u304b\u306e\u30c7\u30fc\u30bf\u304c\u6761\u4ef6\u306b\u30de\u30c3\u30c1\u3059\u308b\u304b\uff1fAny<a href=\"#any\">any<\/a>anyMatch<strong>\u3010\u751f\u6210\u7cfb\u3011<\/strong><\/p>\n<p>\u7a7aEmpty<a href=\"#empty\">empty<\/a>n\/a\u7bc4\u56f2\u3092\u751f\u6210Range<a href=\"#range\">range<\/a>n\/a\u7e70\u308a\u8fd4\u3059Repeat<a href=\"#repeat\">repeat<\/a>n\/a<strong>\u3010\u305d\u306e\u4ed6\u3011<\/strong><\/p>\n<p>\u5168\u8981\u7d20\u4e00\u81f4SequenceEqual<a href=\"#sequenceequal\">sequenceEqual<\/a>n\/a\u30ad\u30e3\u30b9\u30c8Cast<a href=\"#cast\">cast<\/a>n\/a\u4e00\u81f4\u3059\u308b\u578b\u306e\u307f\u62bd\u51faOfType<a href=\"#oftype\">ofType<\/a>n\/a<\/div>\n<\/div>\n<h2>\u4f7f\u7528\u65b9\u6cd5<\/h2>\n<p>\u5c06java.util.List \u66ff\u6362\u6210 com.github.jlinqer.collections.List \u5e76\u4f7f\u7528\u3002<\/p>\n<h3>\u5728\u54ea\u91cc<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">list<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">actual<\/span> <span class=\"o\">=<\/span> <span class=\"n\">list<\/span><span class=\"o\">.<\/span><span class=\"na\">where<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">x<\/span> <span class=\"o\">==<\/span> <span class=\"mi\">1<\/span> <span class=\"o\">||<\/span> <span class=\"n\">x<\/span> <span class=\"o\">==<\/span> <span class=\"mi\">3<\/span><span class=\"o\">).<\/span><span class=\"na\">toList<\/span><span class=\"o\">();<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"kc\">true<\/span> <span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">contains<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">));<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"kc\">false<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">contains<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">));<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"kc\">true<\/span> <span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">contains<\/span><span class=\"o\">(<\/span><span class=\"mi\">3<\/span><span class=\"o\">));<\/span>\r\n<\/code><\/pre>\n<h3>\u9009\u62e9 z\u00e9)<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Person<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">list<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nf\">Person<\/span><span class=\"o\">(<\/span><span class=\"s\">\"React\"<\/span>   <span class=\"o\">,<\/span> <span class=\"mi\">1<\/span><span class=\"o\">),<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nf\">Person<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular\"<\/span> <span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">),<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nf\">Person<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Backbone\"<\/span><span class=\"o\">,<\/span> <span class=\"mi\">5<\/span><span class=\"o\">)<\/span>\r\n<span class=\"o\">);<\/span>\r\n\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">String<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">actual<\/span> <span class=\"o\">=<\/span> <span class=\"n\">list<\/span><span class=\"o\">.<\/span><span class=\"na\">select<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">x<\/span><span class=\"o\">.<\/span><span class=\"na\">name<\/span><span class=\"o\">).<\/span><span class=\"na\">toList<\/span><span class=\"o\">();<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"React\"<\/span>   <span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">));<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular\"<\/span> <span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">));<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Backbone\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">));<\/span>\r\n<\/code><\/pre>\n<h3>\u6309\u7167\u987a\u5e8f\u6446\u653e<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">String<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">list<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"s\">\"Backbone\"<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"Angular\"<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"React\"<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">String<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">actual<\/span> <span class=\"o\">=<\/span> <span class=\"n\">list<\/span><span class=\"o\">.<\/span><span class=\"na\">orderBy<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">x<\/span><span class=\"o\">).<\/span><span class=\"na\">toList<\/span><span class=\"o\">();<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular\"<\/span> <span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">));<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Backbone\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">));<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"React\"<\/span>   <span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">));<\/span>\r\n<\/code><\/pre>\n<h3>\u6309\u964d\u5e8f\u6392\u5e8f<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">String<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">list<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"s\">\"Backbone\"<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"Angular\"<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"React\"<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">String<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">actual<\/span> <span class=\"o\">=<\/span> <span class=\"n\">list<\/span><span class=\"o\">.<\/span><span class=\"na\">orderByDescending<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">x<\/span><span class=\"o\">).<\/span><span class=\"na\">toList<\/span><span class=\"o\">();<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"React\"<\/span>   <span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">));<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Backbone\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">));<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular\"<\/span> <span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">));<\/span>\r\n<\/code><\/pre>\n<h3>\u7136\u540e\u6309\u7167<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Person<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">list<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nf\">Person<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular2\"<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"o\">),<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nf\">Person<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular1\"<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"o\">),<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nf\">Person<\/span><span class=\"o\">(<\/span><span class=\"s\">\"React\"<\/span>   <span class=\"o\">,<\/span> <span class=\"mi\">1<\/span><span class=\"o\">)<\/span>\r\n<span class=\"o\">);<\/span>\r\n\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">String<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">actual<\/span> <span class=\"o\">=<\/span> <span class=\"n\">list<\/span><span class=\"o\">.<\/span><span class=\"na\">orderBy<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">x<\/span><span class=\"o\">.<\/span><span class=\"na\">age<\/span><span class=\"o\">).<\/span><span class=\"na\">thenBy<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">x<\/span><span class=\"o\">.<\/span><span class=\"na\">name<\/span><span class=\"o\">).<\/span><span class=\"na\">toList<\/span><span class=\"o\">();<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"React\"<\/span> <span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">).<\/span><span class=\"na\">name<\/span><span class=\"o\">);<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular1\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">).<\/span><span class=\"na\">name<\/span><span class=\"o\">);<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular2\"<\/span>   <span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">).<\/span><span class=\"na\">name<\/span><span class=\"o\">);<\/span>\r\n<\/code><\/pre>\n<h3>\u7136\u540e\u6309\u964d\u5e8f\u6392\u5217<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Person<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">list<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nf\">Person<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular2\"<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"o\">),<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nf\">Person<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular1\"<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"o\">),<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nf\">Person<\/span><span class=\"o\">(<\/span><span class=\"s\">\"React\"<\/span>   <span class=\"o\">,<\/span> <span class=\"mi\">1<\/span><span class=\"o\">)<\/span>\r\n<span class=\"o\">);<\/span>\r\n\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">String<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">actual<\/span> <span class=\"o\">=<\/span> <span class=\"n\">list<\/span><span class=\"o\">.<\/span><span class=\"na\">orderBy<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">x<\/span><span class=\"o\">.<\/span><span class=\"na\">age<\/span><span class=\"o\">).<\/span><span class=\"na\">thenByDescending<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">x<\/span><span class=\"o\">.<\/span><span class=\"na\">name<\/span><span class=\"o\">).<\/span><span class=\"na\">toList<\/span><span class=\"o\">();<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"React\"<\/span> <span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">).<\/span><span class=\"na\">name<\/span><span class=\"o\">);<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular2\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">).<\/span><span class=\"na\">name<\/span><span class=\"o\">);<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular1\"<\/span>   <span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">).<\/span><span class=\"na\">name<\/span><span class=\"o\">);<\/span>\r\n<\/code><\/pre>\n<h3>\u9009\u591a\u4e2a (Select multiple)<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Person<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">list<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nf\">Person<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular\"<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">,<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">(<\/span><span class=\"s\">\"1.0.1\"<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"1.0.2\"<\/span><span class=\"o\">)),<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nf\">Person<\/span><span class=\"o\">(<\/span><span class=\"s\">\"React\"<\/span>  <span class=\"o\">,<\/span> <span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">(<\/span><span class=\"s\">\"2.0.1\"<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"2.0.2\"<\/span><span class=\"o\">))<\/span>\r\n<span class=\"o\">);<\/span>\r\n\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">String<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">actual<\/span> <span class=\"o\">=<\/span> <span class=\"n\">list<\/span><span class=\"o\">.<\/span><span class=\"na\">selectMany<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">x<\/span><span class=\"o\">.<\/span><span class=\"na\">versionHistory<\/span><span class=\"o\">).<\/span><span class=\"na\">toList<\/span><span class=\"o\">();<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"1.0.1\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">));<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"1.0.2\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">));<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"2.0.1\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">));<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"2.0.2\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">3<\/span><span class=\"o\">));<\/span>\r\n<\/code><\/pre>\n<h3>\u8df3\u8fc7<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">list<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">actual<\/span> <span class=\"o\">=<\/span> <span class=\"n\">list<\/span><span class=\"o\">.<\/span><span class=\"na\">skip<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">).<\/span><span class=\"na\">toList<\/span><span class=\"o\">();<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">3<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">).<\/span><span class=\"na\">intValue<\/span><span class=\"o\">());<\/span>\r\n<\/code><\/pre>\n<h3>\u8df3\u8fc7\u5f53\u6ee1\u8db3\u6761\u4ef6\u65f6<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">list<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">,<\/span> <span class=\"mi\">4<\/span><span class=\"o\">,<\/span> <span class=\"mi\">5<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">actual<\/span> <span class=\"o\">=<\/span> <span class=\"n\">list<\/span><span class=\"o\">.<\/span><span class=\"na\">skipWhile<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">x<\/span> <span class=\"o\">&lt;=<\/span> <span class=\"mi\">3<\/span><span class=\"o\">).<\/span><span class=\"na\">toList<\/span><span class=\"o\">();<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">4<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">).<\/span><span class=\"na\">intValue<\/span><span class=\"o\">());<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">5<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">).<\/span><span class=\"na\">intValue<\/span><span class=\"o\">());<\/span>\r\n<\/code><\/pre>\n<h3>\u8fdb\u884c<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">String<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">list<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"s\">\"Backbone\"<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"Angular\"<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"React\"<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">String<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">actual<\/span> <span class=\"o\">=<\/span> <span class=\"n\">list<\/span><span class=\"o\">.<\/span><span class=\"na\">take<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">).<\/span><span class=\"na\">toList<\/span><span class=\"o\">();<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">size<\/span><span class=\"o\">());<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Backbone\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">));<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular\"<\/span> <span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">));<\/span>\r\n<\/code><\/pre>\n<h3>\u53d6\u51fa\u7b26\u5408\u689d\u4ef6\u7684\u5143\u7d20<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">String<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">list<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"s\">\"Backbone\"<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"Angular\"<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"React\"<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">String<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">actual<\/span> <span class=\"o\">=<\/span> <span class=\"n\">list<\/span><span class=\"o\">.<\/span><span class=\"na\">takeWhile<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">x<\/span><span class=\"o\">.<\/span><span class=\"na\">equals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Backbone\"<\/span><span class=\"o\">)<\/span> <span class=\"o\">||<\/span> <span class=\"n\">x<\/span><span class=\"o\">.<\/span><span class=\"na\">equals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular\"<\/span><span class=\"o\">)).<\/span><span class=\"na\">toList<\/span><span class=\"o\">();<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">size<\/span><span class=\"o\">());<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Backbone\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">));<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular\"<\/span> <span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">));<\/span>\r\n<\/code><\/pre>\n<h3>\u8fde\u63a5<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">first<\/span>  <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"o\">);<\/span>\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">second<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">actual<\/span> <span class=\"o\">=<\/span> <span class=\"n\">first<\/span><span class=\"o\">.<\/span><span class=\"na\">concat<\/span><span class=\"o\">(<\/span><span class=\"n\">second<\/span><span class=\"o\">).<\/span><span class=\"na\">toList<\/span><span class=\"o\">();<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">).<\/span><span class=\"na\">intValue<\/span><span class=\"o\">());<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">).<\/span><span class=\"na\">intValue<\/span><span class=\"o\">());<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">).<\/span><span class=\"na\">intValue<\/span><span class=\"o\">());<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">3<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">3<\/span><span class=\"o\">).<\/span><span class=\"na\">intValue<\/span><span class=\"o\">());<\/span>\r\n<\/code><\/pre>\n<h3>\u4ea4\u53c9\u70b9<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">first<\/span>  <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">);<\/span>\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">second<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">actual<\/span> <span class=\"o\">=<\/span> <span class=\"n\">first<\/span><span class=\"o\">.<\/span><span class=\"na\">intersect<\/span><span class=\"o\">(<\/span><span class=\"n\">second<\/span><span class=\"o\">).<\/span><span class=\"na\">toList<\/span><span class=\"o\">();<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">).<\/span><span class=\"na\">intValue<\/span><span class=\"o\">());<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">3<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">).<\/span><span class=\"na\">intValue<\/span><span class=\"o\">());<\/span>\r\n<\/code><\/pre>\n<h3>\u5de5\u4f1a<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">first<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">);<\/span>\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">second<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"mi\">0<\/span><span class=\"o\">,<\/span> <span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">,<\/span> <span class=\"mi\">4<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">actual<\/span> <span class=\"o\">=<\/span> <span class=\"n\">first<\/span><span class=\"o\">.<\/span><span class=\"na\">union<\/span><span class=\"o\">(<\/span><span class=\"n\">second<\/span><span class=\"o\">).<\/span><span class=\"na\">toList<\/span><span class=\"o\">();<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">5<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">size<\/span><span class=\"o\">());<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">).<\/span><span class=\"na\">intValue<\/span><span class=\"o\">());<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">).<\/span><span class=\"na\">intValue<\/span><span class=\"o\">());<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">3<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">).<\/span><span class=\"na\">intValue<\/span><span class=\"o\">());<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">3<\/span><span class=\"o\">).<\/span><span class=\"na\">intValue<\/span><span class=\"o\">());<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">4<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">4<\/span><span class=\"o\">).<\/span><span class=\"na\">intValue<\/span><span class=\"o\">());<\/span>\r\n<\/code><\/pre>\n<h3>\u9664\u4e86&#8230;\u4ee5\u5916<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">first<\/span>  <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">);<\/span>\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">second<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">actual<\/span> <span class=\"o\">=<\/span> <span class=\"n\">first<\/span><span class=\"o\">.<\/span><span class=\"na\">except<\/span><span class=\"o\">(<\/span><span class=\"n\">second<\/span><span class=\"o\">).<\/span><span class=\"na\">toList<\/span><span class=\"o\">();<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">).<\/span><span class=\"na\">intValue<\/span><span class=\"o\">());<\/span>\r\n<\/code><\/pre>\n<h3>\u52a0\u5165<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Javascript<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">outer<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nf\">Javascript<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular\"<\/span><span class=\"o\">,<\/span> <span class=\"mi\">1<\/span><span class=\"o\">),<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nf\">Javascript<\/span><span class=\"o\">(<\/span><span class=\"s\">\"React\"<\/span>  <span class=\"o\">,<\/span> <span class=\"mi\">4<\/span><span class=\"o\">),<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nf\">Javascript<\/span><span class=\"o\">(<\/span><span class=\"s\">\"ES2016\"<\/span> <span class=\"o\">,<\/span> <span class=\"mi\">5<\/span><span class=\"o\">)<\/span>\r\n<span class=\"o\">);<\/span>\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Javascript<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">inner<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nf\">Javascript<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular\"<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"o\">),<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nf\">Javascript<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular\"<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">),<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nf\">Javascript<\/span><span class=\"o\">(<\/span><span class=\"s\">\"ES2016\"<\/span> <span class=\"o\">,<\/span> <span class=\"mi\">6<\/span><span class=\"o\">),<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nf\">Javascript<\/span><span class=\"o\">(<\/span><span class=\"s\">\"ES7\"<\/span>    <span class=\"o\">,<\/span> <span class=\"mi\">7<\/span><span class=\"o\">)<\/span>\r\n<span class=\"o\">);<\/span>\r\n\r\n<span class=\"nc\">Function<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Javascript<\/span><span class=\"o\">,<\/span> <span class=\"nc\">String<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">outerKey<\/span> <span class=\"o\">=<\/span> <span class=\"o\">(<\/span><span class=\"n\">x<\/span><span class=\"o\">)<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">x<\/span><span class=\"o\">.<\/span><span class=\"na\">name<\/span><span class=\"o\">;<\/span>\r\n<span class=\"nc\">Function<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Javascript<\/span><span class=\"o\">,<\/span> <span class=\"nc\">String<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">innerKey<\/span> <span class=\"o\">=<\/span> <span class=\"o\">(<\/span><span class=\"n\">y<\/span><span class=\"o\">)<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">y<\/span><span class=\"o\">.<\/span><span class=\"na\">name<\/span><span class=\"o\">;<\/span>\r\n<span class=\"nc\">BiFunction<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Javascript<\/span><span class=\"o\">,<\/span> <span class=\"nc\">Javascript<\/span><span class=\"o\">,<\/span> <span class=\"nc\">Javascript<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">selector<\/span> <span class=\"o\">=<\/span> <span class=\"o\">(<\/span><span class=\"n\">x<\/span><span class=\"o\">,<\/span> <span class=\"n\">y<\/span><span class=\"o\">)<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">Javascript<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span><span class=\"o\">.<\/span><span class=\"na\">name<\/span><span class=\"o\">,<\/span> <span class=\"n\">y<\/span><span class=\"o\">.<\/span><span class=\"na\">age<\/span><span class=\"o\">);<\/span>\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Javascript<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">actual<\/span> <span class=\"o\">=<\/span> <span class=\"n\">outer<\/span><span class=\"o\">.<\/span><span class=\"na\">join<\/span><span class=\"o\">(<\/span><span class=\"n\">inner<\/span><span class=\"o\">,<\/span> <span class=\"n\">outerKey<\/span><span class=\"o\">,<\/span> <span class=\"n\">innerKey<\/span><span class=\"o\">,<\/span> <span class=\"n\">selector<\/span><span class=\"o\">).<\/span><span class=\"na\">toList<\/span><span class=\"o\">();<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">3<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">size<\/span><span class=\"o\">());<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">).<\/span><span class=\"na\">name<\/span><span class=\"o\">);<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">).<\/span><span class=\"na\">name<\/span><span class=\"o\">);<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"ES2016\"<\/span> <span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">).<\/span><span class=\"na\">name<\/span><span class=\"o\">);<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">).<\/span><span class=\"na\">age<\/span><span class=\"o\">);<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">3<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">).<\/span><span class=\"na\">age<\/span><span class=\"o\">);<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">6<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">).<\/span><span class=\"na\">age<\/span><span class=\"o\">);<\/span>\r\n<\/code><\/pre>\n<h3>\u7fa4\u7ec4\u52a0\u5165<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Javascript<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">outer<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nf\">Javascript<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular\"<\/span><span class=\"o\">,<\/span> <span class=\"mi\">1<\/span><span class=\"o\">),<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nf\">Javascript<\/span><span class=\"o\">(<\/span><span class=\"s\">\"React\"<\/span>  <span class=\"o\">,<\/span> <span class=\"mi\">4<\/span><span class=\"o\">),<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nf\">Javascript<\/span><span class=\"o\">(<\/span><span class=\"s\">\"ES2016\"<\/span> <span class=\"o\">,<\/span> <span class=\"mi\">5<\/span><span class=\"o\">)<\/span>\r\n<span class=\"o\">);<\/span>\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Javascript<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">inner<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nf\">Javascript<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular\"<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"o\">),<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nf\">Javascript<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular\"<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">),<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nf\">Javascript<\/span><span class=\"o\">(<\/span><span class=\"s\">\"ES2016\"<\/span> <span class=\"o\">,<\/span> <span class=\"mi\">6<\/span><span class=\"o\">),<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nf\">Javascript<\/span><span class=\"o\">(<\/span><span class=\"s\">\"ES7\"<\/span>    <span class=\"o\">,<\/span> <span class=\"mi\">7<\/span><span class=\"o\">)<\/span>\r\n<span class=\"o\">);<\/span>\r\n\r\n<span class=\"nc\">Function<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Javascript<\/span><span class=\"o\">,<\/span> <span class=\"nc\">String<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">outerKey<\/span> <span class=\"o\">=<\/span> <span class=\"o\">(<\/span><span class=\"n\">x<\/span><span class=\"o\">)<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">x<\/span><span class=\"o\">.<\/span><span class=\"na\">name<\/span><span class=\"o\">;<\/span>\r\n<span class=\"nc\">Function<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Javascript<\/span><span class=\"o\">,<\/span> <span class=\"nc\">String<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">innerKey<\/span> <span class=\"o\">=<\/span> <span class=\"o\">(<\/span><span class=\"n\">y<\/span><span class=\"o\">)<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">y<\/span><span class=\"o\">.<\/span><span class=\"na\">name<\/span><span class=\"o\">;<\/span>\r\n<span class=\"nc\">BiFunction<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Javascript<\/span><span class=\"o\">,<\/span> <span class=\"nc\">IEnumerable<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Javascript<\/span><span class=\"o\">&gt;,<\/span> <span class=\"nc\">Javascript<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">selector<\/span> <span class=\"o\">=<\/span> <span class=\"o\">(<\/span><span class=\"n\">x<\/span><span class=\"o\">,<\/span> <span class=\"n\">y<\/span><span class=\"o\">)<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">Javascript<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span><span class=\"o\">.<\/span><span class=\"na\">name<\/span><span class=\"o\">,<\/span> <span class=\"n\">y<\/span><span class=\"o\">.<\/span><span class=\"na\">select<\/span><span class=\"o\">(<\/span><span class=\"n\">z<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">z<\/span><span class=\"o\">.<\/span><span class=\"na\">age<\/span><span class=\"o\">));<\/span>\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Javascript<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">actual<\/span> <span class=\"o\">=<\/span> <span class=\"n\">outer<\/span><span class=\"o\">.<\/span><span class=\"na\">groupJoin<\/span><span class=\"o\">(<\/span><span class=\"n\">inner<\/span><span class=\"o\">,<\/span> <span class=\"n\">outerKey<\/span><span class=\"o\">,<\/span> <span class=\"n\">innerKey<\/span><span class=\"o\">,<\/span> <span class=\"n\">selector<\/span><span class=\"o\">).<\/span><span class=\"na\">toList<\/span><span class=\"o\">();<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">3<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">size<\/span><span class=\"o\">());<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">).<\/span><span class=\"na\">name<\/span><span class=\"o\">);<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"React\"<\/span>  <span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">).<\/span><span class=\"na\">name<\/span><span class=\"o\">);<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"ES2016\"<\/span> <span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">).<\/span><span class=\"na\">name<\/span><span class=\"o\">);<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">).<\/span><span class=\"na\">ages<\/span><span class=\"o\">.<\/span><span class=\"na\">elementAt<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">));<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">3<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">).<\/span><span class=\"na\">ages<\/span><span class=\"o\">.<\/span><span class=\"na\">elementAt<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">));<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">).<\/span><span class=\"na\">ages<\/span><span class=\"o\">.<\/span><span class=\"na\">count<\/span><span class=\"o\">());<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">6<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">).<\/span><span class=\"na\">ages<\/span><span class=\"o\">.<\/span><span class=\"na\">elementAt<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">));<\/span>\r\n<\/code><\/pre>\n<h3>\u9006\u8f6c<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">list<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">actual<\/span> <span class=\"o\">=<\/span> <span class=\"n\">list<\/span><span class=\"o\">.<\/span><span class=\"na\">reverse<\/span><span class=\"o\">().<\/span><span class=\"na\">toList<\/span><span class=\"o\">();<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">3<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">).<\/span><span class=\"na\">intValue<\/span><span class=\"o\">());<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">).<\/span><span class=\"na\">intValue<\/span><span class=\"o\">());<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">).<\/span><span class=\"na\">intValue<\/span><span class=\"o\">());<\/span>\r\n<\/code><\/pre>\n<h3>\u62c9\u94fe<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">first<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">);<\/span>\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">String<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">second<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"s\">\"Angular\"<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"React\"<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"Backbone\"<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">actual<\/span> <span class=\"o\">=<\/span> <span class=\"n\">first<\/span><span class=\"o\">.<\/span><span class=\"na\">zip<\/span><span class=\"o\">(<\/span><span class=\"n\">second<\/span><span class=\"o\">,<\/span> <span class=\"o\">(<\/span><span class=\"n\">x<\/span><span class=\"o\">,<\/span> <span class=\"n\">y<\/span><span class=\"o\">)<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"nc\">String<\/span><span class=\"o\">.<\/span><span class=\"na\">format<\/span><span class=\"o\">(<\/span><span class=\"s\">\"%s %d\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">x<\/span><span class=\"o\">,<\/span> <span class=\"n\">y<\/span><span class=\"o\">)).<\/span><span class=\"na\">toList<\/span><span class=\"o\">();<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"1 Angular\"<\/span> <span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">));<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"2 React\"<\/span>   <span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">));<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"3 Backbone\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">));<\/span>\r\n<\/code><\/pre>\n<h3>\u72ec\u7279\u7684 (d\u00fa t\u00e8 de)<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">list<\/span> <span class=\"o\">=<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span>\r\n                <span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">,<\/span>\r\n                <span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">,<\/span> <span class=\"mi\">4<\/span>\r\n        <span class=\"o\">);<\/span>\r\n\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">actual<\/span> <span class=\"o\">=<\/span> <span class=\"n\">list<\/span><span class=\"o\">.<\/span><span class=\"na\">distinct<\/span><span class=\"o\">().<\/span><span class=\"na\">toList<\/span><span class=\"o\">();<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">).<\/span><span class=\"na\">intValue<\/span><span class=\"o\">());<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">).<\/span><span class=\"na\">intValue<\/span><span class=\"o\">());<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">3<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">).<\/span><span class=\"na\">intValue<\/span><span class=\"o\">());<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">4<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">3<\/span><span class=\"o\">).<\/span><span class=\"na\">intValue<\/span><span class=\"o\">());<\/span>\r\n<\/code><\/pre>\n<h3>\u6c47\u603b<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">list<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"kt\">int<\/span> <span class=\"n\">actual<\/span> <span class=\"o\">=<\/span> <span class=\"n\">list<\/span><span class=\"o\">.<\/span><span class=\"na\">aggregate<\/span><span class=\"o\">((<\/span><span class=\"n\">sum<\/span><span class=\"o\">,<\/span> <span class=\"n\">elem<\/span><span class=\"o\">)<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">sum<\/span> <span class=\"o\">+<\/span> <span class=\"n\">elem<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">6<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">);<\/span>\r\n<\/code><\/pre>\n<h3>\u6309\u7167\u5206\u7ec4<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Person<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">list<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nf\">Person<\/span><span class=\"o\">(<\/span><span class=\"s\">\"React\"<\/span>   <span class=\"o\">,<\/span> <span class=\"mi\">1<\/span><span class=\"o\">),<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nf\">Person<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular\"<\/span> <span class=\"o\">,<\/span> <span class=\"mi\">1<\/span><span class=\"o\">),<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nf\">Person<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Backbone\"<\/span><span class=\"o\">,<\/span> <span class=\"mi\">5<\/span><span class=\"o\">)<\/span>\r\n<span class=\"o\">);<\/span>\r\n\r\n<span class=\"nc\">Map<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">,<\/span> <span class=\"nc\">IEnumerable<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Person<\/span><span class=\"o\">&gt;&gt;<\/span> <span class=\"n\">actual<\/span> <span class=\"o\">=<\/span> <span class=\"n\">list<\/span><span class=\"o\">.<\/span><span class=\"na\">groupBy<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">x<\/span><span class=\"o\">.<\/span><span class=\"na\">age<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"kc\">true<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">).<\/span><span class=\"na\">any<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">x<\/span><span class=\"o\">.<\/span><span class=\"na\">name<\/span><span class=\"o\">.<\/span><span class=\"na\">equals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"React\"<\/span><span class=\"o\">)));<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"kc\">true<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">).<\/span><span class=\"na\">any<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">x<\/span><span class=\"o\">.<\/span><span class=\"na\">name<\/span><span class=\"o\">.<\/span><span class=\"na\">equals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular\"<\/span><span class=\"o\">)));<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"kc\">true<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">5<\/span><span class=\"o\">).<\/span><span class=\"na\">any<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">x<\/span><span class=\"o\">.<\/span><span class=\"na\">name<\/span><span class=\"o\">.<\/span><span class=\"na\">equals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Backbone\"<\/span><span class=\"o\">)));<\/span>\r\n<\/code><\/pre>\n<h3>\u5e73\u5747<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Long<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">listLong<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"mi\">1<\/span><span class=\"n\">l<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"n\">l<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"n\">l<\/span><span class=\"o\">,<\/span> <span class=\"mi\">4<\/span><span class=\"n\">l<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"kt\">double<\/span> <span class=\"n\">actualLong<\/span> <span class=\"o\">=<\/span> <span class=\"n\">listLong<\/span><span class=\"o\">.<\/span><span class=\"na\">averageLong<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">x<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mf\">2.5d<\/span><span class=\"o\">,<\/span> <span class=\"n\">actualLong<\/span><span class=\"o\">,<\/span> <span class=\"mi\">0<\/span><span class=\"o\">);<\/span>\r\n<\/code><\/pre>\n<h3>\u8ba1\u6570<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">String<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">list<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"s\">\"Backbone\"<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"Angular\"<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"React\"<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"kt\">long<\/span> <span class=\"n\">actual<\/span> <span class=\"o\">=<\/span> <span class=\"n\">list<\/span><span class=\"o\">.<\/span><span class=\"na\">longCount<\/span><span class=\"o\">();<\/span>\r\n<span class=\"kt\">int<\/span> <span class=\"n\">actualNone<\/span> <span class=\"o\">=<\/span> <span class=\"n\">list<\/span><span class=\"o\">.<\/span><span class=\"na\">count<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">x<\/span><span class=\"o\">.<\/span><span class=\"na\">equals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"jquery\"<\/span><span class=\"o\">));<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">3<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">);<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">,<\/span> <span class=\"n\">actualNone<\/span><span class=\"o\">);<\/span>\r\n<\/code><\/pre>\n<h3>\u9a6c\u514b\u65af<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Double<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">listDouble<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"mi\">1<\/span><span class=\"n\">d<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"n\">d<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"n\">d<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"kt\">double<\/span> <span class=\"n\">actualDouble<\/span> <span class=\"o\">=<\/span> <span class=\"n\">listDouble<\/span><span class=\"o\">.<\/span><span class=\"na\">max<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">x<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">3<\/span><span class=\"n\">d<\/span><span class=\"o\">,<\/span> <span class=\"n\">actualDouble<\/span><span class=\"o\">,<\/span> <span class=\"mi\">0<\/span><span class=\"o\">);<\/span>\r\n<\/code><\/pre>\n<h3>\u8ff7\u4f60<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">BigDecimal<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">listBigDecimal<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nf\">BigDecimal<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"n\">d<\/span><span class=\"o\">),<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nf\">BigDecimal<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"n\">d<\/span><span class=\"o\">),<\/span>\r\n        <span class=\"k\">new<\/span> <span class=\"nf\">BigDecimal<\/span><span class=\"o\">(<\/span><span class=\"mi\">3<\/span><span class=\"n\">d<\/span><span class=\"o\">)<\/span>\r\n<span class=\"o\">);<\/span>\r\n\r\n<span class=\"nc\">BigDecimal<\/span> <span class=\"n\">actualBigDecimal<\/span> <span class=\"o\">=<\/span> <span class=\"n\">listBigDecimal<\/span><span class=\"o\">.<\/span><span class=\"na\">min<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">x<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"n\">d<\/span><span class=\"o\">,<\/span> <span class=\"n\">actualBigDecimal<\/span><span class=\"o\">.<\/span><span class=\"na\">doubleValue<\/span><span class=\"o\">(),<\/span> <span class=\"mi\">0<\/span><span class=\"o\">);<\/span>\r\n<\/code><\/pre>\n<h3>\u4ee5\u4e0b\u662f\u5bf9\u539f\u59cb\u53e5\u5b50\u7684\u6c49\u8bed\u540c\u4e49\u53e5\uff1a<\/h3>\n<p>\u603b\u7ed3<\/p>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">listInt<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"kt\">int<\/span> <span class=\"n\">actualInt<\/span> <span class=\"o\">=<\/span> <span class=\"n\">listInt<\/span><span class=\"o\">.<\/span><span class=\"na\">sumInt<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">x<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">6<\/span><span class=\"o\">,<\/span> <span class=\"n\">actualInt<\/span><span class=\"o\">);<\/span>\r\n<\/code><\/pre>\n<h3>\u9996\u5148<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">String<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">list<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"s\">\"Backbone\"<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"Angular\"<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"React\"<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"nc\">String<\/span> <span class=\"n\">actualFirst<\/span>   <span class=\"o\">=<\/span> <span class=\"n\">list<\/span><span class=\"o\">.<\/span><span class=\"na\">firstOrDefault<\/span><span class=\"o\">();<\/span>\r\n<span class=\"nc\">String<\/span> <span class=\"n\">actualMatch<\/span>   <span class=\"o\">=<\/span> <span class=\"n\">list<\/span><span class=\"o\">.<\/span><span class=\"na\">firstOrDefault<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">x<\/span><span class=\"o\">.<\/span><span class=\"na\">equals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular\"<\/span><span class=\"o\">));<\/span>\r\n<span class=\"nc\">String<\/span> <span class=\"n\">actualUnMatch<\/span> <span class=\"o\">=<\/span> <span class=\"n\">list<\/span><span class=\"o\">.<\/span><span class=\"na\">firstOrDefault<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">x<\/span><span class=\"o\">.<\/span><span class=\"na\">equals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"jquery\"<\/span><span class=\"o\">));<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Backbone\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">actualFirst<\/span><span class=\"o\">);<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular\"<\/span> <span class=\"o\">,<\/span> <span class=\"n\">actualMatch<\/span><span class=\"o\">);<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"kc\">null<\/span>      <span class=\"o\">,<\/span> <span class=\"n\">actualUnMatch<\/span><span class=\"o\">);<\/span>\r\n<\/code><\/pre>\n<h3>\u6700\u540e\u4e00\u4e2a\u6216\u9ed8\u8ba4<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">list<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">);<\/span>\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">listEmpty<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;();<\/span>\r\n\r\n<span class=\"kt\">int<\/span> <span class=\"n\">actual<\/span> <span class=\"o\">=<\/span> <span class=\"n\">list<\/span><span class=\"o\">.<\/span><span class=\"na\">lastOrDefault<\/span><span class=\"o\">();<\/span>\r\n<span class=\"nc\">Integer<\/span> <span class=\"n\">actualDefaultNone<\/span> <span class=\"o\">=<\/span> <span class=\"n\">listEmpty<\/span><span class=\"o\">.<\/span><span class=\"na\">lastOrDefault<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">x<\/span> <span class=\"o\">==<\/span> <span class=\"mi\">0<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">3<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">);<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"kc\">null<\/span><span class=\"o\">,<\/span> <span class=\"n\">actualDefaultNone<\/span><span class=\"o\">);<\/span>\r\n<\/code><\/pre>\n<h3>\u552f\u4e00\u7684\u9009\u9879<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">listMany<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">);<\/span>\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">listEmpty<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;();<\/span>\r\n\r\n<span class=\"kt\">int<\/span> <span class=\"n\">actualFilter<\/span> <span class=\"o\">=<\/span> <span class=\"n\">listMany<\/span><span class=\"o\">.<\/span><span class=\"na\">singleOrDefault<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">x<\/span> <span class=\"o\">==<\/span> <span class=\"mi\">3<\/span><span class=\"o\">);<\/span>\r\n<span class=\"nc\">Integer<\/span> <span class=\"n\">actualUnMatch<\/span> <span class=\"o\">=<\/span> <span class=\"n\">listEmpty<\/span><span class=\"o\">.<\/span><span class=\"na\">singleOrDefault<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">x<\/span> <span class=\"o\">==<\/span> <span class=\"mi\">0<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">3<\/span><span class=\"o\">,<\/span> <span class=\"n\">actualFilter<\/span><span class=\"o\">);<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"kc\">null<\/span><span class=\"o\">,<\/span> <span class=\"n\">actualUnMatch<\/span><span class=\"o\">);<\/span>\r\n<\/code><\/pre>\n<h3>\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u4e3a\u7a7a<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">String<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">listEmpty<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;();<\/span>\r\n\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">String<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">actualDefault<\/span> <span class=\"o\">=<\/span> <span class=\"n\">listEmpty<\/span><span class=\"o\">.<\/span><span class=\"na\">defaultIfEmpty<\/span><span class=\"o\">(<\/span><span class=\"s\">\"ES7\"<\/span><span class=\"o\">).<\/span><span class=\"na\">toList<\/span><span class=\"o\">();<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"ES7\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">actualDefault<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">));<\/span>\r\n<\/code><\/pre>\n<h3>\u53d6\u51fa\u5143\u7d20\u6216\u9ed8\u8ba4<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">list<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"kt\">int<\/span> <span class=\"n\">actual<\/span> <span class=\"o\">=<\/span> <span class=\"n\">list<\/span><span class=\"o\">.<\/span><span class=\"na\">elementAtOrDefault<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">);<\/span>\r\n<span class=\"nc\">Integer<\/span> <span class=\"n\">actualDefault<\/span> <span class=\"o\">=<\/span> <span class=\"n\">list<\/span><span class=\"o\">.<\/span><span class=\"na\">elementAtOrDefault<\/span><span class=\"o\">(<\/span><span class=\"mi\">3<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">3<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">);<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"kc\">null<\/span><span class=\"o\">,<\/span> <span class=\"n\">actualDefault<\/span><span class=\"o\">);<\/span>\r\n<\/code><\/pre>\n<h3>the students are required to wear uniforms to school.<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">String<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">list<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"s\">\"Backbone\"<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"Angular\"<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"React\"<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"kt\">boolean<\/span> <span class=\"n\">actual<\/span> <span class=\"o\">=<\/span> <span class=\"n\">list<\/span><span class=\"o\">.<\/span><span class=\"na\">all<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">x<\/span><span class=\"o\">.<\/span><span class=\"na\">equals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular\"<\/span><span class=\"o\">)<\/span> <span class=\"o\">||<\/span> <span class=\"n\">x<\/span><span class=\"o\">.<\/span><span class=\"na\">equals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Backbone\"<\/span><span class=\"o\">)<\/span> <span class=\"o\">||<\/span> <span class=\"n\">x<\/span><span class=\"o\">.<\/span><span class=\"na\">equals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"React\"<\/span><span class=\"o\">));<\/span>\r\n<span class=\"kt\">boolean<\/span> <span class=\"n\">actualNotFound<\/span> <span class=\"o\">=<\/span> <span class=\"n\">list<\/span><span class=\"o\">.<\/span><span class=\"na\">all<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">x<\/span><span class=\"o\">.<\/span><span class=\"na\">equals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular\"<\/span><span class=\"o\">)<\/span> <span class=\"o\">||<\/span> <span class=\"n\">x<\/span><span class=\"o\">.<\/span><span class=\"na\">equals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"React\"<\/span><span class=\"o\">));<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"kc\">true<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">);<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"kc\">false<\/span><span class=\"o\">,<\/span> <span class=\"n\">actualNotFound<\/span><span class=\"o\">);<\/span>\r\n<\/code><\/pre>\n<h3>\u4efb\u4f55<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">String<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">list<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"s\">\"Backbone\"<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"Angular\"<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"React\"<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"kt\">boolean<\/span> <span class=\"n\">actual<\/span> <span class=\"o\">=<\/span> <span class=\"n\">list<\/span><span class=\"o\">.<\/span><span class=\"na\">any<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">x<\/span><span class=\"o\">.<\/span><span class=\"na\">equals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Angular\"<\/span><span class=\"o\">));<\/span>\r\n<span class=\"kt\">boolean<\/span> <span class=\"n\">actualNotFound<\/span> <span class=\"o\">=<\/span> <span class=\"n\">list<\/span><span class=\"o\">.<\/span><span class=\"na\">any<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">x<\/span><span class=\"o\">.<\/span><span class=\"na\">equals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"jquery\"<\/span><span class=\"o\">));<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"kc\">true<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">);<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"kc\">false<\/span><span class=\"o\">,<\/span> <span class=\"n\">actualNotFound<\/span><span class=\"o\">);<\/span>\r\n<\/code><\/pre>\n<h3>\u7a7a\u7684 de)<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Double<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">actual<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">IEnumerable<\/span><span class=\"o\">.<\/span><span class=\"na\">empty<\/span><span class=\"o\">(<\/span><span class=\"nc\">Double<\/span><span class=\"o\">.<\/span><span class=\"na\">class<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">count<\/span><span class=\"o\">());<\/span>\r\n<\/code><\/pre>\n<h3>\u8303\u56f4<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">actual<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">IEnumerable<\/span><span class=\"o\">.<\/span><span class=\"na\">range<\/span><span class=\"o\">(-<\/span><span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(-<\/span><span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">).<\/span><span class=\"na\">intValue<\/span><span class=\"o\">());<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(-<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">).<\/span><span class=\"na\">intValue<\/span><span class=\"o\">());<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span> <span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">).<\/span><span class=\"na\">intValue<\/span><span class=\"o\">());<\/span>\r\n<\/code><\/pre>\n<h3>\u91cd\u590d<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">String<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">actual<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">IEnumerable<\/span><span class=\"o\">.<\/span><span class=\"na\">repeat<\/span><span class=\"o\">(<\/span><span class=\"nc\">String<\/span><span class=\"o\">.<\/span><span class=\"na\">class<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"Law of Cycles\"<\/span><span class=\"o\">,<\/span> <span class=\"mi\">10<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">10<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">count<\/span><span class=\"o\">());<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Law of Cycles\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">9<\/span><span class=\"o\">));<\/span>\r\n<\/code><\/pre>\n<h3>\u76f8\u7b49\u5e8f\u5217<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">first<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">);<\/span>\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">secondMatch<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">);<\/span>\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">secondUnMatchElem<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"mi\">4<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"kt\">boolean<\/span> <span class=\"n\">actualMatch<\/span> <span class=\"o\">=<\/span> <span class=\"n\">first<\/span><span class=\"o\">.<\/span><span class=\"na\">sequenceEqual<\/span><span class=\"o\">(<\/span><span class=\"n\">secondMatch<\/span><span class=\"o\">);<\/span>\r\n<span class=\"kt\">boolean<\/span> <span class=\"n\">actualUnMatchElm<\/span> <span class=\"o\">=<\/span> <span class=\"n\">first<\/span><span class=\"o\">.<\/span><span class=\"na\">sequenceEqual<\/span><span class=\"o\">(<\/span><span class=\"n\">secondUnMatchElem<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"kc\">true<\/span><span class=\"o\">,<\/span> <span class=\"n\">actualMatch<\/span><span class=\"o\">);<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"kc\">false<\/span><span class=\"o\">,<\/span> <span class=\"n\">actualUnMatchElm<\/span><span class=\"o\">);<\/span>\r\n<\/code><\/pre>\n<h3>\u6f14\u5458<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Object<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">list<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">actual<\/span> <span class=\"o\">=<\/span> <span class=\"n\">list<\/span><span class=\"o\">.<\/span><span class=\"na\">cast<\/span><span class=\"o\">(<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">.<\/span><span class=\"na\">class<\/span><span class=\"o\">).<\/span><span class=\"na\">toList<\/span><span class=\"o\">();<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">).<\/span><span class=\"na\">intValue<\/span><span class=\"o\">());<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">).<\/span><span class=\"na\">intValue<\/span><span class=\"o\">());<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">3<\/span><span class=\"o\">,<\/span> <span class=\"n\">actual<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">).<\/span><span class=\"na\">intValue<\/span><span class=\"o\">());<\/span>\r\n<\/code><\/pre>\n<h3>\u7c7b\u578b\u7684<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Object<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">list<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">List<\/span><span class=\"o\">&lt;&gt;(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"2\"<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"4\"<\/span><span class=\"o\">);<\/span>\r\n\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">String<\/span><span class=\"o\">&gt;<\/span>  <span class=\"n\">actualStr<\/span> <span class=\"o\">=<\/span> <span class=\"n\">list<\/span><span class=\"o\">.<\/span><span class=\"na\">ofType<\/span><span class=\"o\">(<\/span><span class=\"nc\">String<\/span><span class=\"o\">.<\/span><span class=\"na\">class<\/span><span class=\"o\">).<\/span><span class=\"na\">toList<\/span><span class=\"o\">();<\/span>\r\n<span class=\"nc\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">actualInt<\/span> <span class=\"o\">=<\/span> <span class=\"n\">list<\/span><span class=\"o\">.<\/span><span class=\"na\">ofType<\/span><span class=\"o\">(<\/span><span class=\"nc\">Integer<\/span><span class=\"o\">.<\/span><span class=\"na\">class<\/span><span class=\"o\">).<\/span><span class=\"na\">toList<\/span><span class=\"o\">();<\/span>\r\n\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"2\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">actualStr<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">));<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"4\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">actualStr<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">));<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span>  <span class=\"o\">,<\/span> <span class=\"n\">actualInt<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">).<\/span><span class=\"na\">intValue<\/span><span class=\"o\">());<\/span>\r\n<span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">3<\/span>  <span class=\"o\">,<\/span> <span class=\"n\">actualInt<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">).<\/span><span class=\"na\">intValue<\/span><span class=\"o\">());<\/span>\r\n<\/code><\/pre>\n<h2>\u4e3b\u984c<\/h2>\n<p>\u6709\u4e9b\u5730\u65b9\u65e0\u6cd5\u6a21\u62df\u5b9e\u73b0LINQ\u7684\u6807\u51c6\u884c\u4e3a\u3002<\/p>\n<p>\u9045\u5ef6\u8a55\u4fa1\u306b\u306a\u3063\u3066\u3044\u306a\u3044<\/p>\n<p>toList\u7b49\u3067\u8a55\u4fa1\u3059\u308b\u3088\u3046\u306b\u5909\u66f4\u4e2d \uff08\u5909\u66f4\u6e08\uff1a2015\/06\/22\uff09<\/p>\n<p>XXXorDefault<\/p>\n<p>Integer\uff0cLong\uff0cDouble\u306edefault\u5024\u304cnull\u3068\u306a\u3063\u3066\u3057\u307e\u3044\u307e\u3059\u3002C#\u306f\u30d7\u30ea\u30df\u30c6\u30a3\u30d6\u578b\u3067\u30b8\u30a7\u30cd\u30ea\u30af\u30b9\u304c\u53ef\u80fd\u306a\u306e\u3067\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u304c0\u304c\u8fd4\u5374\u3067\u304d\u307e\u3059<\/p>\n<p>GroupBy<\/p>\n<p>\u8fd4\u308a\u5024\u304cMap&lt;Key, IEnumerable&gt;\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002C#\u306fIGrouping\u3067\u3059\u3002IEnumerable\u306eMap\u304c\u5fc5\u8981\u3067\u3059\u3002\uff08\u691c\u8a0e\u4e2d\uff09<\/p>\n<p>sumXXX\uff0caverageXXX\uff0cminXXX\uff0cmaxXXX<\/p>\n<p>\u30b8\u30a7\u30cd\u30ea\u30af\u30b9\u3067\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u304c\u3067\u304d\u306a\u3044\u305f\u3081\uff0c\u30e1\u30bd\u30c3\u30c9\u540d\u306b\u578b\u3092\u542b\u307e\u305b\u3066\u3044\u307e\u3059\u3002Java\u306e\u30b8\u30a7\u30cd\u30ea\u30af\u30b9\u3067\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u3059\u308b\u8b70\u8ad6\u306fstackoverflow\u3067\u3057\u307e\u3057\u305f<\/p>\n<p>List\u304cjava.lang.List\u3068\u91cd\u8907\u3059\u308b<\/p>\n<p>List\u3092\u7d99\u627f\u3057\u3066\u65e2\u5b58\u306eList\u3092\u5b8c\u5168\u306b\u7f6e\u304d\u63db\u3048\u308b\u3088\u3046\u306b\u4f5c\u3063\u3066\u3044\u307e\u3059\u3002java.util.List\u3092com.github.jlinqer.collections.List\u306b\u5909\u66f4\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u6b63\u7d71\u6d3eIterable\u7d99\u627f\u7248\u306f\u53c2\u8003\u6587\u732e\u306e&#8221;javaLinq&#8221;\u3092\u53c2\u7167\u304f\u3060\u3055\u3044<\/p>\n<p>ThenBy\/ThenByDescending\u304c\u3067\u304d\u306a\u3044<\/p>\n<p>IOrderedEnumerable\u306e\u5b9f\u88c5\u304c\u5fc5\u8981\u3067\u3059\u3002\uff08\u691c\u8a0e\u4e2d\uff09 (\u5b9f\u88c5\u6e08\uff1a2015\/06\/27)<\/p>\n<p>Join\uff0cGroupJoin\uff0cZip\u304c\u3067\u304d\u306a\u3044<\/p>\n<p>\uff08\u691c\u8a0e\u4e2d\uff09\uff08Zip\u5b9f\u88c5\u6e08\uff1a2015\/07\/05\uff09\uff08Join\u5b9f\u88c5\u6e08\uff1a2015\/10\/26\uff09\uff08GroupJoin\u5b9f\u88c5\u6e08\uff1a2015\/10\/26\uff09<\/p>\n<h2>\u6e90\u4ee3\u7801<\/h2>\n<p>\u8bf7\u5728GitHub\u4e0a\u67e5\u770b\u6e90\u4ee3\u7801\u3002\u5982\u679c\u6709\u4efb\u4f55\u529f\u80fd\u589e\u52a0\u6216\u8005\u8fd0\u884c\u969c\u788d\uff0c\u8bf7\u52a1\u5fc5\u63d0\u4ea4Pull Request\u3002<\/p>\n<h3>\u5173\u4e8e\u7248\u672c\u95ee\u9898<\/h3>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u9045\u5ef6\u8a55\u4fa1\u7248\uff08\u672c\u6d41\uff09<\/ul>\n<\/li>\n<\/ul>\n<p>Reuben Kuhnert &#8220;javaLinq&#8221;\u3092folk\u3057\u3066\uff0cIterator\u3092\u4f7f\u7528\u3057\u3066LINQ\u306e\u9045\u5ef6\u8a55\u4fa1\u3092\u518d\u73fe\u3057\u3066\u3044\u307e\u3059<br \/>\nhttps:\/\/github.com\/k&#8211;kato\/jLinqer<\/p>\n<p>\u5148\u884c\u8a55\u4fa1\u7248\uff08\u508d\u6d41\uff09<\/p>\n<p>Java 8 Stream\u3092\u4f7f\u7528\u3057\u3066LINQ\u3092\u518d\u73fe\u3057\u3066\u3044\u307e\u3059<br \/>\nhttps:\/\/github.com\/k&#8211;kato\/jLinqer\/tree\/0786bb88d0788e1d1ee540af70cbad12244da9be<\/p>\n<h1>\u6587\u732e\u5f15\u7528<\/h1>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>&#8211; \u5fae\u8f6f\u53c2\u8003\u6e90\u7801\uff0c&#8221;Enumerable.cs&#8221;\uff0chttp:\/\/referencesource.microsoft.com\/#System.Core\/System\/Linq\/Enumerable.cs<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>&#8211; GitHub\uff0c&#8221;javaLinq&#8221;\uff0chttps:\/\/github.com\/sircodesalotOfTheRound\/javaLinq<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>&#8211; Qiita\uff0c&#8221;LINQ to Objects \u3068 Java8-Stream API \u306e\u5bfe\u5fdc\u8868&#8221;\uff0chttp:\/\/qiita.com\/amay077\/items\/9d2941283c4a5f61f302<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>&#8211; stackoverflow\uff0c&#8221;Generic method to perform a map-reduce operation. (Java-8)&#8221;\uff0chttp:\/\/stackoverflow.com\/questions\/30826674\/generic-method-to-perform-a-map-reduce-operation-java-8<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>\u6211\u60f3\u5728Java\u4e2d\u4f7f\u7528LINQ\u3002 \u6211\u521b\u5efa\u4e86\u4e00\u4e2a\u53ef\u4ee5\u5728Java\u4e2d\u4f7f\u7528\u7684LINQ\u5e93\u3002\u5b83\u53ef\u4ee5\u89e3\u51b3\u5728Java8\u7684Stre [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-39514","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u6211\u5c06C#\u7684LINQ\u79fb\u690d\u5230Java\u4e0a\u5c1d\u8bd5\u4e86\u4e00\u4e0b - jLinqer - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u6211\u5c06c\u7684linq\u79fb\u690d\u5230java\u4e0a\u5c1d\u8bd5\u4e86\u4e00\u4e0b-jlinqer\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u6211\u5c06C#\u7684LINQ\u79fb\u690d\u5230Java\u4e0a\u5c1d\u8bd5\u4e86\u4e00\u4e0b - jLinqer\" \/>\n<meta property=\"og:description\" content=\"\u6211\u60f3\u5728Java\u4e2d\u4f7f\u7528LINQ\u3002 \u6211\u521b\u5efa\u4e86\u4e00\u4e2a\u53ef\u4ee5\u5728Java\u4e2d\u4f7f\u7528\u7684LINQ\u5e93\u3002\u5b83\u53ef\u4ee5\u89e3\u51b3\u5728Java8\u7684Stre [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u6211\u5c06c\u7684linq\u79fb\u690d\u5230java\u4e0a\u5c1d\u8bd5\u4e86\u4e00\u4e0b-jlinqer\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-19T21:03:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-29T08:07:17+00:00\" \/>\n<meta name=\"author\" content=\"\u97f5, \u79d1\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u97f5, \u79d1\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%86c%e7%9a%84linq%e7%a7%bb%e6%a4%8d%e5%88%b0java%e4%b8%8a%e5%b0%9d%e8%af%95%e4%ba%86%e4%b8%80%e4%b8%8b-jlinqer\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%86c%e7%9a%84linq%e7%a7%bb%e6%a4%8d%e5%88%b0java%e4%b8%8a%e5%b0%9d%e8%af%95%e4%ba%86%e4%b8%80%e4%b8%8b-jlinqer\/\",\"name\":\"\u6211\u5c06C#\u7684LINQ\u79fb\u690d\u5230Java\u4e0a\u5c1d\u8bd5\u4e86\u4e00\u4e0b - jLinqer - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2022-12-19T21:03:27+00:00\",\"dateModified\":\"2024-04-29T08:07:17+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%86c%e7%9a%84linq%e7%a7%bb%e6%a4%8d%e5%88%b0java%e4%b8%8a%e5%b0%9d%e8%af%95%e4%ba%86%e4%b8%80%e4%b8%8b-jlinqer\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%86c%e7%9a%84linq%e7%a7%bb%e6%a4%8d%e5%88%b0java%e4%b8%8a%e5%b0%9d%e8%af%95%e4%ba%86%e4%b8%80%e4%b8%8b-jlinqer\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%86c%e7%9a%84linq%e7%a7%bb%e6%a4%8d%e5%88%b0java%e4%b8%8a%e5%b0%9d%e8%af%95%e4%ba%86%e4%b8%80%e4%b8%8b-jlinqer\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u6211\u5c06C#\u7684LINQ\u79fb\u690d\u5230Java\u4e0a\u5c1d\u8bd5\u4e86\u4e00\u4e0b &#8211; jLinqer\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e\",\"name\":\"\u97f5, \u79d1\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g\",\"caption\":\"\u97f5, \u79d1\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunke\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%86c%e7%9a%84linq%e7%a7%bb%e6%a4%8d%e5%88%b0java%e4%b8%8a%e5%b0%9d%e8%af%95%e4%ba%86%e4%b8%80%e4%b8%8b-jlinqer\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u6211\u5c06C#\u7684LINQ\u79fb\u690d\u5230Java\u4e0a\u5c1d\u8bd5\u4e86\u4e00\u4e0b - jLinqer - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u6211\u5c06c\u7684linq\u79fb\u690d\u5230java\u4e0a\u5c1d\u8bd5\u4e86\u4e00\u4e0b-jlinqer\/","og_locale":"zh_CN","og_type":"article","og_title":"\u6211\u5c06C#\u7684LINQ\u79fb\u690d\u5230Java\u4e0a\u5c1d\u8bd5\u4e86\u4e00\u4e0b - jLinqer","og_description":"\u6211\u60f3\u5728Java\u4e2d\u4f7f\u7528LINQ\u3002 \u6211\u521b\u5efa\u4e86\u4e00\u4e2a\u53ef\u4ee5\u5728Java\u4e2d\u4f7f\u7528\u7684LINQ\u5e93\u3002\u5b83\u53ef\u4ee5\u89e3\u51b3\u5728Java8\u7684Stre [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u6211\u5c06c\u7684linq\u79fb\u690d\u5230java\u4e0a\u5c1d\u8bd5\u4e86\u4e00\u4e0b-jlinqer\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2022-12-19T21:03:27+00:00","article_modified_time":"2024-04-29T08:07:17+00:00","author":"\u97f5, \u79d1","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u97f5, \u79d1","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"10 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%86c%e7%9a%84linq%e7%a7%bb%e6%a4%8d%e5%88%b0java%e4%b8%8a%e5%b0%9d%e8%af%95%e4%ba%86%e4%b8%80%e4%b8%8b-jlinqer\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%86c%e7%9a%84linq%e7%a7%bb%e6%a4%8d%e5%88%b0java%e4%b8%8a%e5%b0%9d%e8%af%95%e4%ba%86%e4%b8%80%e4%b8%8b-jlinqer\/","name":"\u6211\u5c06C#\u7684LINQ\u79fb\u690d\u5230Java\u4e0a\u5c1d\u8bd5\u4e86\u4e00\u4e0b - jLinqer - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2022-12-19T21:03:27+00:00","dateModified":"2024-04-29T08:07:17+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%86c%e7%9a%84linq%e7%a7%bb%e6%a4%8d%e5%88%b0java%e4%b8%8a%e5%b0%9d%e8%af%95%e4%ba%86%e4%b8%80%e4%b8%8b-jlinqer\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%86c%e7%9a%84linq%e7%a7%bb%e6%a4%8d%e5%88%b0java%e4%b8%8a%e5%b0%9d%e8%af%95%e4%ba%86%e4%b8%80%e4%b8%8b-jlinqer\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%86c%e7%9a%84linq%e7%a7%bb%e6%a4%8d%e5%88%b0java%e4%b8%8a%e5%b0%9d%e8%af%95%e4%ba%86%e4%b8%80%e4%b8%8b-jlinqer\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u6211\u5c06C#\u7684LINQ\u79fb\u690d\u5230Java\u4e0a\u5c1d\u8bd5\u4e86\u4e00\u4e0b &#8211; jLinqer"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e","name":"\u97f5, \u79d1","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g","caption":"\u97f5, \u79d1"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunke\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%b0%86c%e7%9a%84linq%e7%a7%bb%e6%a4%8d%e5%88%b0java%e4%b8%8a%e5%b0%9d%e8%af%95%e4%ba%86%e4%b8%80%e4%b8%8b-jlinqer\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/39514","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=39514"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/39514\/revisions"}],"predecessor-version":[{"id":86277,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/39514\/revisions\/86277"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=39514"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=39514"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=39514"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}