日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Java中的数组,列表,集合,映射,元组,记录文字

發(fā)布時(shí)間:2023/12/3 java 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java中的数组,列表,集合,映射,元组,记录文字 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
有時(shí),當(dāng)我對(duì)JavaScript的強(qiáng)大功能和表現(xiàn)力感到興奮時(shí),我發(fā)現(xiàn)自己錯(cuò)過(guò)了Java世界中的一兩個(gè)功能。 除了lambda表達(dá)式/閉包或任何您想稱為“匿名函數(shù)”的東西之外,它還對(duì)數(shù)組,數(shù)組,列表,集合,映射等常見數(shù)據(jù)類型使用了高級(jí)文字。在JavaScript中,沒(méi)有人會(huì)考慮構(gòu)造一個(gè)這樣的常量映射: var map = new Object(); map["a"] = 1; map["b"] = 2; map["c"] = 3;

相反,您可能會(huì)寫

var map = { "a":1, "b":2, "c":3 };

具體來(lái)說(shuō),當(dāng)將復(fù)雜參數(shù)傳遞給API函數(shù)時(shí),這實(shí)際上是一種非常方便的語(yǔ)法。

Java中的這些東西呢?

我最近發(fā)布了一種解決方法,您可以在這里使用Arrays.asList(…)創(chuàng)建“列表文字”:

http://blog.jooq.org/2011/10/28/javas-arrays-aslist-is-underused/

這樣就可以了。 在分配數(shù)組時(shí),還可以使用數(shù)組文字構(gòu)造數(shù)組。 但是您不能將數(shù)組文字傳遞給方法:

// This will work: int[] array = { 1, 2, 3 };// This won't: class Test {public void callee(int[] array) {}public void caller() {// Compilation error here:callee({1, 2, 3});} }

Brian Goetz在lambda-dev上提到了各種文字

錯(cuò)過(guò)了很長(zhǎng)一段時(shí)間后,我很高興閱讀lambda-dev郵件列表中的Brian Goetz關(guān)于它們的提及:

http://mail.openjdk.java.net/pipermail/lambda-dev/2012-May/004979.html

他列出的想法是:

#[ 1, 2, 3 ] // Array, list, set #{ "foo" : "bar", "blah" : "wooga" } // Map literals #/(\d+)$/ // Regex #(a, b) // Tuple #(a: 3, b: 4) // Record #"There are {foo.size()} foos" // String literal

不幸的是,他還添加了以下免責(zé)聲明:

并不是說(shuō)我們會(huì)立即(或永遠(yuǎn))擁抱所有這些

顯然,在Java 8當(dāng)前Java語(yǔ)言發(fā)展的現(xiàn)階段,他不能保證將來(lái)會(huì)增加什么。 但是從jOOQ的角度來(lái)看,能夠聲明元組和記錄文字(具有適當(dāng)?shù)闹С终Z(yǔ)言的支持,支持這種類型!)的想法非常令人激動(dòng)。 想象一下選擇任意元組/記錄及其關(guān)聯(lián)的索引/類型,列/類型對(duì)。 想象一下在Java或Scala中這樣的構(gòu)造(使用jOOQ):

// For simplicity, I'm using Scala's val operator here, // indicating type inference. It's hard to guess what true // record support in the java language should look like for (val record : create.select(BOOK.AUTHOR_ID.as("author"), count().as("books")).from(BOOK).groupBy(BOOK.AUTHOR_ID).fetch()) {// With true record support, you could now formally extract// values from the result set being iterated on. In other// words, the formal column alias and type is available to// the compiler:int author = record.author;int books = record.books; }

顯然,這只是推測(cè),但是您可以看到,由于Java語(yǔ)言具有真正的元組/記錄支持,因此Java Universe中將釋放許多功能,這對(duì)所有現(xiàn)有的庫(kù)和API都有很大的影響

敬請(qǐng)關(guān)注!

參考: Java,SQL和AND JOOQ博客上的JCG合作伙伴 Lukas Eder 用Java數(shù)組,列表,設(shè)置,映射,元組和記錄文字 。


翻譯自: https://www.javacodegeeks.com/2012/06/array-list-set-map-tuple-record.html

總結(jié)

以上是生活随笔為你收集整理的Java中的数组,列表,集合,映射,元组,记录文字的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。