JTupleJava 語言版本的元組數(shù)據(jù)類型
JTuple
Java 語言版本的元組數(shù)據(jù)類型,實現(xiàn)了元組類型的特性(不可變、 可迭代)以及常用操作方法
特點:輕量級,無依賴,線程安全
元組的意義
元組最重要的意義是用來實現(xiàn)多值返現(xiàn)。很多時候我們需要返回一組值,更可怕的是這組值的類型可能并不完全一樣,比如 http 請求時,有請求的返回碼(int)以及響應(yīng)報文(String)
對于 Java 人員來說,遇到這種情況時,一般的解決方案是編寫一個類,類里只有2個屬性,分別是以上2個,然后返回給調(diào)用者。是不是有種胸悶的感覺。折騰,造孽啊。
或者就返回一個列表,但是因為類型不統(tǒng)一,只能用 List,后續(xù)處理的代碼的可讀性會很差,我相信任何一個技術(shù)水平過關(guān)或者有職業(yè)操守的程序員都不會這么做。
元組的出現(xiàn),就是為了解決這種情況的,很多年輕的語言(Python、Scala)都內(nèi)置了元組,本項目就是讓 Java 開發(fā)人員也可以享受到元組帶來的編程時的便捷和快樂。
主要實現(xiàn)
| 類名 | 描述 |
|---|---|
| Tuple | 元組抽象,實現(xiàn)元組數(shù)據(jù)結(jié)構(gòu)已經(jīng)常用操作方法 |
| Tuple0 | 空元組,不包含任何元素 |
| Tuple1 | 只包含1個元素的元組 |
| Tuple2 | 只包含2個元素的元組 |
| Tuple3 | 只包含3個元素的元組 |
| Tuple4 | 只包含4個元素的元組 |
| TupleN | 包含N個元素的元組 |
元組操作
| 操作API | 說明 |
|---|---|
| add | 元組合并 |
| foreach | 元組迭代 |
| forEachWithIndex | 元組帶序號迭代 |
| swap | 元組反轉(zhuǎn) |
| toList | 元組轉(zhuǎn)成列表 |
| get | 獲取元組某一個元素 |
| contains | 元組中是否包含某個元素 |
| subTuple | 截取子元組 |
| equals | 比較2個元組內(nèi)容是否相同 |
| toString | 輸出字符串表示的元組,如: (123, 456) |
| repeat | 重復(fù)元組內(nèi)的所有元素 |
樣例
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
評論
圖片
表情
