JTupleJava 语言版本的元组数据类型
JTuple
Java 语言版本的元组
数据类型,实现了元组类型的特性(不可变
、 可迭代
)以及常用操作方法
特点:轻量级,无依赖,线程安全
元组的意义
元组最重要的意义是用来实现多值返现。很多时候我们需要返回一组值,更可怕的是这组值的类型可能并不完全一样,比如 http 请求时,有请求的返回码(int)以及响应报文(String)
对于 Java 人员来说,遇到这种情况时,一般的解决方案是编写一个类,类里只有2个属性,分别是以上2个,然后返回给调用者。是不是有种胸闷的感觉。折腾,造孽啊。
或者就返回一个列表,但是因为类型不统一,只能用 List,后续处理的代码的可读性会很差,我相信任何一个技术水平过关或者有职业操守的程序员都不会这么做。
元组的出现,就是为了解决这种情况的,很多年轻的语言(Python、Scala)都内置了元组,本项目就是让 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
评论