Java中的数组,列表,集合,映射,元组,记录文字
相反,您可能會寫
var map = { "a":1, "b":2, "c":3 };具體來說,當(dāng)將復(fù)雜參數(shù)傳遞給API函數(shù)時(shí),這實(shí)際上是一種非常方便的語法。
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ò)過了很長一段時(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é)聲明:
并不是說我們會立即(或永遠(yuǎn))擁抱所有這些
顯然,在Java 8當(dāng)前Java語言發(fā)展的現(xiàn)階段,他不能保證將來會增加什么。 但是從jOOQ的角度來看,能夠聲明元組和記錄文字(具有適當(dāng)?shù)闹С终Z言的支持,支持這種類型!)的想法非常令人激動。 想象一下選擇任意元組/記錄及其關(guān)聯(lián)的索引/類型,列/類型對。 想象一下在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; }顯然,這只是推測,但是您可以看到,由于Java語言具有真正的元組/記錄支持,因此Java Universe中將釋放許多功能,這對所有現(xiàn)有的庫和API都有很大的影響
敬請關(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中的数组,列表,集合,映射,元组,记录文字的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 物业保安备案流程(物业保安备案)
- 下一篇: ddos攻击硬件(ddos攻击 硬件)