JTuple Java 语言版本的元组数据类型

Apache
Java 查看源码»
跨平台
2017-05-31
愚_者

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
加载中

评论(6)

光源
光源
这个和javatuples 相比优势在哪呢
纳川思源
还是有点用的 可以试试
愚_者
愚_者
自己顶一下吧
张寒枫
张寒枫
+10086
凯撒大弚
凯撒大弚
看到jdk8,普遍用上估计还得5年以上
小网客
小网客
没发现存在的意义

JTuple 1.2.1 正式版发布,更优雅的使用元组

JTuple 1.2.1 正式版发布了,本次更新内容: 1.删除了使用List构造元组的方法,简化使用 2.优化add方法,返回结果更匹配 JTuple Java 语言版本的元组数据类型,实现了元组类型的特性(不可变...

2017/10/23 09:02

JTuple 1.2.0 正式版发布,更优雅的使用元组

JTuple 1.2.0 正式版发布了,本次更新内容: 1.新增优雅工具类Tuples,实现优雅使用元组,如下: import static com.github.sd4324530.jtuple.Tuples.tuple; Tuple2<String, Integer> t...

2017/06/29 09:06

JTuple 1.1.1 正式版发布,让 Java 支持元组数据类型

JTuple 1.1.1 正式版发布了,本次更新内容: 优化Tuple.get方法,可以根据需要自动强转成指定类型 支持元组列表(数组)排序:Tuple.sort 将Tuple.withList方法置为过期,下一版会删除,可以...

2017/06/20 09:00

JTuple 1.1.0 正式版发布,让 Java 支持元组数据类型

JTuple 1.1.0 正式版发布了,本次更新内容: 1. 调整Tuple1-Tuple4获取元素的方式,更人性化 2. 新增支持将元组转换成Stream 3. 新增Tuple5 4. 完善代码注释以及使用文档 JTuple Java 语言版...

2017/06/14 09:21

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

暂无博客

返回顶部
顶部