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

java 映射数组

有时,当我对JavaScript的强大功能和表现力感到兴奋时,我发现自己错过了Java世界中的一两个功能。 除了lambda表达式/闭包或任何您想称为“匿名函数”的东西之外,它还对数组,数组,列表,集合,映射等常见数据类型使用了高级文字。在JavaScript中,没有人会考虑构造一个这样的常量映射:
var map = new Object();
map["a"] = 1;
map["b"] = 2;
map["c"] = 3;

相反,您可能会写

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

具体来说,当将复杂参数传递给API函数时,这实际上是一种非常方便的语法。

Java中的这些东西呢?

我最近发布了一种解决方法,您可以在这里使用Arrays.asList(…)创建“列表文字”:

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

这样就可以了。 在分配数组时,还可以使用数组文字构造数组。 但是您不能将数组文字传递给方法:

// 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上提到了各种文字

错过了很长一段时间后,我很高兴阅读lambda-dev邮件列表中的Brian Goetz关于它们的提及:

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

不幸的是,他还添加了以下免责声明:

并不是说我们会立即(或永远)拥抱所有这些

显然,在Java 8当前Java语言发展的现阶段,他不能保证将来会增加什么。 但是从jOOQ的角度来看,能够声明元组和记录文字(具有适当的支持语言的支持,支持这种类型!)的想法非常令人激动。 想象一下选择任意的元组/记录及其关联的索引/类型,列/类型对。 想象一下在Java或Scala中这样的构造(使用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中将释放许多功能,这对所有现有的库和API都有很大的影响

敬请关注!

参考:来自Java,SQL和AND JOOQ博客的JCG合作伙伴 Lukas Eder 用Java 编写 数组,列表,设置,映射,元组和记录Java中的文字 。


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

java 映射数组

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/355545.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

知道接口地址 如何传数据_如何选显示器连接线?四种主流接口要知道

前两天家里电脑显示器的线坏了,火急火燎的买了根线,谁知道买回来之后接口不匹配,不能用。显示器为什么要有这么多接口呢?这些接口又有什么区别呢?必须把它搞清楚!这不,经过我的不屑努力&#xf…

docker rabbitmq php扩展,Docker开启RabbitMQ延时消息队列

前言经常在开发中会遇到一些不需要同步执行的业务,那我们就需要用到消息队列来进行异步执行,但是对于某些业务就还需要用到延时的功能,比如订单支付超时关闭,那么这个时候我们就需要开启消息队列的延时功能,当然也有朋…

[转]Eclipse插件开发之基础篇(3) 插件的测试与调试

原文地址:http://www.cnblogs.com/liuzhuo/archive/2010/08/17/eclipse_plugin_1_1_2.html 1. 使用JUnit对插件进行测试 Eclipse中已经嵌入了JUnit,我们可以使用JUnit为插件进行单体测试。一般的JUnit是不可以对插件部分(对Eclipse的API依赖的部分)进行测…

您应该考虑将应用程序升级到Spring 4的5个理由

Spring Framework于2004年首次发布,是顶级Java框架之一。 Spring 4已于2013年12月发布,它是支持Java 8的第一个框架版本。了解为什么应该考虑将应用程序升级到Spring 4。 注意:我最初将此博客文章写在公司博客http://blog.goyello.com上 。 …

大整数乘法c语言代码_大整数乘法

大整数乘法和我们小学学过的乘法公式一样&#xff08;如下图&#xff09;&#xff0c;就是按位相乘&#xff0c;两个数中的每一位彼此相乘&#xff0c;然后将相同列的结果加起来&#xff0c;最后统一处理进位即可。#include <iostream> #include <cstring> using n…

13.5.SolrCloud集群使用手册之数据导入

转载请出自出处:http://www.cnblogs.com/hd3013779515/ 1.使用curl命令方式 SolrCloud时会根据路由规则路由到各个shard。 删除所有数据 curl http://192.168.137.171:8080/solr-cloud/myc_shard1_replica1/update?committrue -H "Content-Type: text/xml" --data-b…

dematel matlab,决策与实验室方法,DEMATEL分析方法介绍

DEMATEL实施步骤第一步&#xff1a;从研究目的出发&#xff0c;确定研究指标或元素。量化各元素之间的相互关系。得到直接影响矩阵。第二步&#xff1a;通过归一化原始关系矩阵。得到规范直接影响矩阵。第三步&#xff1a;由规范化直接影响矩阵。计算得到综合影响矩阵。。第四步…

python如何打印字符串_如何在Python中打印“漂亮”字符串输出

Standard Python string formatting就足够了。 # assume that your data rows are tuples template "{0:8}|{1:10}|{2:15}|{3:7}|{4:10}" # column widths: 8, 10, 15, 7, 10 print template.format("CLASSID", "DEPT", "COURSE NUMBER&qu…

mysql5.7环境,MySQL-5.7-线上生产环境部署

环境信息&#xff1a;Centos-7.2.1511MySQL 5.7.22业务名称core本篇文章数据库安装用于线上生成所使用&#xff0c;所安装的数据库使用为Percona版本&#xff0c;同样本站高可用部署都是基于本篇文章基础进行的。部署搭建&#xff1a;安装相关依赖并下载MySQL移动到指定目录yum…

primefaces_懒惰的JSF Primefaces数据表分页–第2部分

primefaces页面代码非常简单&#xff0c;没有复杂性。 检查“ index.xhtml”代码&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"…

龙芯2h芯片不能进入pmon_“龙芯”18年:这个团队,终结了中国计算机产业的“无芯”历史...

近期在第二届数字中国建设峰会上展出的国产芯片龙芯3号。芯片是信息产业的灵魂&#xff0c;通用CPU(中央处理器)可以说是芯片中的“珠峰”。自主研发CPU&#xff0c;难度很大。在这个故事的起点&#xff0c;2001年8月的一个清晨&#xff0c;当龙芯第一代产品龙芯1号成功启动操作…

帝国cms录入表单模板php,帝国cms7.5在线表单提交制作教程

最近春哥仿站团队接到很多仿站客户订单&#xff0c;这里面有一个这样的功能&#xff0c;表单提交。今天花时间写个教程给大家。另外我们春哥仿站团队推出低价仿站业务&#xff0c;市面上99%的企业站点都能制作出来&#xff0c;有需要的联系我们。今天春哥团队华哥给大家讲解一下…

golang linux安装

go在linux下的安装&#xff1a; [rootlocalhost src]# wget https://storage.googleapis.com/golang/go1.8.1.linux-amd64.tar.gz 速度还挺快的 [rootlocalhost src]# tar -C /usr/local -xzf go1.8.1.linux-amd64.tar.gz 设置环境变量 [rootlocalhost src]# export PATH$PATH:…

使用反应流作为Drools的数据源

几个月前&#xff0c;我们开始重新设计Drools最低级别的可执行模型 &#xff0c;并使最终用户可以使用Java 8 API进行访问。 为了证明这种方法的灵活性&#xff0c;我尝试将其与反应流集成在一起&#xff0c;尤其是将该流用作Drools的数据源。 为了说明这是如何工作的&#xf…

java jsonobject 转对象_解析JSON中JSONObject的高级使用

文末会有读者福利简介:在程序开发过程中&#xff0c;在参数传递&#xff0c;函数返回值等方面&#xff0c;越来越多的使用JSON。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式&#xff0c;同时也易于机器解析和生成、易于理解、阅读和撰写&#xff0c;而且Json采…

oracle 数据执行计划,Oracle 常见的执行计划步骤(explain结果的Description数据参考)...

在PL/SQL中 执行explain plain for select ...查看Description 数据参考&#xff1a;Oracle常见的执行计划步骤这里我们介绍一些常见的执行计划中的步骤及算法。1、表访问路径(1)TABLE ACCESSFULL&#xff1a;全表扫描。它会访问表中的每一条记录(读取高水位线以内的每一个数据…

CSS3实现Loading动画特效

查看效果&#xff1a;http://hovertree.com/texiao/css3/43/代码如下&#xff1a; <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>css3 loading等待加载代码 - 何问起</title><style>keyframes move {from {…

xfs支持oracle,让linux内核支持xfs文件系统

作/译者&#xff1a;叶金荣(Email:)&#xff0c;来源&#xff1a;http://imysql.cn&#xff0c;转载请注明作/译者和出处&#xff0c;并且不能用于商业用途&#xff0c;违者必究。 XFS 简介XFS 最初是由 Silicon Graphics&#xff0c;Inc. 于 90 年代初开发的。那时&#xff0c…

c语言打印菱形_没事了,搞一下C语言打印大小可变的菱形图案?

问题分析&#xff1a;菱形的大小size其实就是中间行中*号的个数&#xff0c;也是整个菱形的行数&#xff0c;其值必是奇数。问题的关键之一是如何确定每行中*号的个数。经过分析得知&#xff1a;当行i<(size1)/2时&#xff0c;该行的*号个数为n2*i-1&#xff0c;否则n2*&…

ListView 与 RecyclerView的创建与使用的异同

相同&#xff1a;1.在使用时&#xff0c;都需要先获取&#xff0c;再新建适配器&#xff0c;再用serAdapter方法绑定适配器 2.创建数据List&#xff0c;都是新建ArrayList 不同&#xff1a;1.在新建适配器类时&#xff0c;listview的适配器继承自ArrayAdapter,recyclerview的适…