当前位置: 首页 > 软件库 > 开发工具 > Java开发工具 >

JTuple

Java 语言版本的元组数据类型
授权协议 Apache
开发语言 Java
所属分类 开发工具、 Java开发工具
软件类型 开源软件
地区 国产
投 递 者 钱飞翼
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

JTuple

Java 语言版本的元组数据类型,实现了元组类型的特性(不可变、 可迭代)以及常用操作方法

特点:轻量级,无依赖,线程安全

元组的意义

元组最重要的意义是用来实现多值返现。很多时候我们需要返回一组值,更可怕的是这组值的类型可能并不完全一样,比如 http 请求时,有请求的返回码(int)以及响应报文(String)

对于 Java 人员来说,遇到这种情况时,一般的解决方案是编写一个类,类里只有2个属性,分别是以上2个,然后返回给调用者。是不是有种胸闷的感觉。折腾,造孽啊。

或者就返回一个列表,但是因为类型不统一,只能用 List,后续处理的代码的可读性会很差,我相信任何一个技术水平过关或者有职业操守的程序员都不会这么做。

元组的出现,就是为了解决这种情况的,很多年轻的语言(PythonScala)都内置了元组,本项目就是让 Java 开发人员也可以享受到元组带来的编程时的便捷和快乐。

主要实现

类名 描述
Tuple 元组抽象,实现元组数据结构已经常用操作方法
Tuple0 空元组,不包含任何元素
Tuple1 只包含1个元素的元组
Tuple2 只包含2个元素的元组
Tuple3 只包含3个元素的元组
Tuple4 只包含4个元素的元组
TupleN 包含N个元素的元组

元组操作

操作API 说明
add 元组合并
foreach 元组迭代
forEachWithIndex 元组带序号迭代
swap 元组反转
toList 元组转成列表
get 获取元组某一个元素
contains 元组中是否包含某个元素
subTuple 截取子元组
equals 比较2个元组内容是否相同
toString 输出字符串表示的元组,如: (123, 456)
repeat 重复元组内的所有元素

样例

Tuple2 tuple2 = Tuple2.with("test", 123);
log.debug("first:{}", tuple2._0);//test
log.debug("second:{}", tuple2._1);//123
TupleN tuple = TupleN.with("hello", 123, true, 186.5);
log.debug("toString:{}", tuple.toString());//(hello, 123, true, 186.5)
Tuple1 tuple1 = Tuple1.with("hello");
Tuple2 tuple2 = Tuple2.with("world", "!");
Tuple3 tuple3 = Tuple3.with(1, 2, 3);
log.debug("add:{}", tuple1.add(tuple2).toString());//(hello, world, !)
log.debug("add:{}", tuple1.add(tuple2, tuple3).toString());//(hello, world, !, 1, 2, 3)
TupleN tuple = TupleN.with("hello", 123, true, 186.5);
log.debug("swap:{}", tuple.swap().toString());//(186.5, true, 123, hello)
Tuple2 tuple2 = Tuple2.with("a", "b");
log.debug("repeat:{}", tuple2.repeat(3).toString());//(a, b, a, b, a, b)

引入(要求 JDK8)

com.github.sd4324530
JTuple
1.1.0
  • https://github.com/sd4324530/JTuple https://git.oschina.net/pyinjava/jtuple

  • JTuple https://github.com/sd4324530/JTuple https://git.oschina.net/pyinjava/jtuple java语言版本的元组数据类型,实现了元组类型的特性(不可变、 可迭代)以及常用操作方法 轻量级,无依赖,线程安全 元组的意义 元组最重要的意义是用来实现多值返现。 很多时候我们需要返回一组值,更可怕的是这组值的类型可能并不完全一样,

  • JTuple java语言版本的元组数据类型,实现了元组类型的特性(不可变、 可迭代)以及常用操作方法 轻量级,无依赖,线程安全 元组的意义 元组最重要的意义是用来实现多值返现。 很多时候我们需要返回一组值,更可怕的是这组值的类型可能并不完全一样,比如http请求时,有请求的返回码(int)以及响应报文(String) 对于java人员来说,遇到这种情况时,一般的解决方案是编写一个类,类里只有2个

  • https://www.oschina.net/news/86276/jtuple-1-2-0 java语言版本的元组数据类型,实现了元组类型的特性(不可变、 可迭代)以及常用操作方法 轻量级,无依赖,线程安全 元组的意义 元组最重要的意义是用来实现多值返现。 很多时候我们需要返回一组值,更可怕的是这组值的类型可能并不完全一样,比如http请求时,有请求的返回码(int)以及响应报文(String

  • http://www.oschina.net/news/86001/jtuple-1-1-1

 相关资料
  • 本文向大家介绍GO语言基本数据类型总结,包括了GO语言基本数据类型总结的使用技巧和注意事项,需要的朋友参考一下 本文实例总结了GO语言基本数据类型。分享给大家供大家参考。具体如下: 1、注释(与C++一样) 行注释://块注释:/* ...*/ 2、标识符 可以这么说,除了数字开头的不允许,符号开头的不允许,关键字不允许,其他的Unicode字符组合都可以。“_33”也可以是标识符、“我们”也可以

  • 主要内容:向量,列表,矩阵,数组,因子,数据帧通常,在使用任何编程语言进行编程时,需要使用各种变量来存储各种信息。变量只不过是保存存储值的内存位置。 这意味着,当您创建变量时,可以在内存中保留一些空间用来存储某些值。 可能希望存储各种数据类型的信息,如字符,宽字符,整数,浮点,双浮点,布尔等。根据变量的数据类型,操作系统会分配内存并决定在保留这些内存。 R语言与其他编程语言(如C语言和Java)相反,变量不会被声明为某些数据类型。 变量被分配

  • 在 Go 编程语言中,数据类型用于声明函数和变量。 数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。 Go 语言按类别有以下几种数据类型: 序号 类型和描述 1 布尔型 布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。 2 数字类型 整型 int 和浮点型 float32

  • 问题内容: 当我只想使用AJAX时,如何消除下载完整的jquery库的需要。是否有一个较小的文件专注于AJAX,还是此代码的Vanilla Javascript版本? 问题答案: 您可以尝试使用 XMLHttpRequest, 如下所示。 演示: https : //www.w3schools.com/js/tryit.asp?filename=tryjs_ajax_first 参考: https

  • 本文向大家介绍易语言把非文本类型数据变为文本类型,包括了易语言把非文本类型数据变为文本类型的使用技巧和注意事项,需要的朋友参考一下  易语言到文本,这个是什么意思呢?这个命令就是把非文本类型数据变为文本类型,你看我下面的实例就知道了。 1、易语言新建一个windows窗口 点击进入代码编辑区 具体看如何用易语言编写自己第一个程序? 2、这里我们要使用调试输出这个函数,具体看易语言调试输出函数实例详

  • 问题内容: 我知道BigQuery中没有数据类型。您希望在BigQuery中处理什么语义版本? 我有以下架构: software_version列是但我存储在其中的数据为semver格式:`MAJOR.MINOR.PATCH-prerelease 我特别想执行运算符 。 返回,但是根据semver的定义,它是错误的。因为char用于预发布。 问题答案: 以下是BigQuery标准SQL 您可以使用

  • 在必要以及可行的情况下,一个类型的值可以被转换成另一种类型的值。由于Go语言不存在隐式类型转换,因此所有的类型转换都必须显式的声明: valueOfTypeB = typeB(valueOfTypeA) 类型 B 的值 = 类型 B(类型 A 的值) 示例: a := 5.0 b := int(a) 类型转换只能在定义正确的情况下转换成功,例如从一个取值范围较小的类型转换到一个取值范围较大的类型(

  • 主要内容:自动类型转换,强制类型转换,类型转换只是临时性的,自动类型转换 VS 强制类型转换数据类型转换就是将数据(变量、数值、表达式的结果等)从一种类型转换为另一种类型。 自动类型转换 自动类型转换就是编译器默默地、隐式地、偷偷地进行的数据类型转换,这种转换不需要程序员干预,会自动发生。 1) 将一种类型的数据赋值给另外一种类型的变量时就会发生自动类型转换,例如: float f = 100; 100 是 int 类型的数据,需要先转换为 float 类型才能赋值给变量 f。再如: i