Java元組類型javatuples使用實(shí)例
這篇文章主要介紹了Java元組類型javatuples使用實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
有時(shí)候經(jīng)常需要返回2個(gè)值或多個(gè)值的一個(gè)序列,比如數(shù)據(jù)表的一條記錄,文件的一行內(nèi)容等。除了使用數(shù)組Array、集合(List、Set、Map)這些容器類型之外,在Java中我們就必須創(chuàng)建一個(gè)Class來作為返回類型。但很多時(shí)候我們只需要兩三個(gè)字段,這個(gè)時(shí)候非要定義一個(gè)class就很煩瑣了,所以這肯定不是一種最佳方式。
在很多語言中都提供元組類型Tuple的支持,比如 .NET Framework 最多支持7個(gè)元素的元組;Scala最多支持22個(gè)元素的元組;C++(STL)的Tuple;雖然JDK原生不支持元祖,但幸運(yùn)的是有個(gè)框架javatuples支持元祖。其官網(wǎng)為:https://github.com/javatuples/javatuples ,最新版本是javatuples-1.2.jar,maven坐標(biāo)為:
<dependency> <groupId>org.javatuples</groupId> <artifactId>javatuples</artifactId> <version>1.2</version> </dependency>
最多支持10個(gè)元素:
- Unit<A> (1 element)
- Pair<A,B> (2 elements)
- Triplet<A,B,C> (3 elements)
- Quartet<A,B,C,D> (4 elements)
- Quintet<A,B,C,D,E> (5 elements)
- Sextet<A,B,C,D,E,F> (6 elements)
- Septet<A,B,C,D,E,F,G> (7 elements)
- Octet<A,B,C,D,E,F,G,H> (8 elements)
- Ennead<A,B,C,D,E,F,G,H,I> (9 elements)
- Decade<A,B,C,D,E,F,G,H,I,J> (10 elements)
例如,我們定義一個(gè)三元素的元祖,如下:
package tuples; import org.javatuples.Triplet; public class TupleDemo { public static void main(String[] args) { Triplet<String,Integer,Double> triplet = Triplet.with("rensanning.iteye.com", 9527, 1.0); System.out.println(triplet.getValue(0)); // 通過index訪問 System.out.println(triplet.getValue1()); // 通過命名方法訪問 } }
輸出:
rensanning.iteye.com 9527
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Eclipse項(xiàng)目怎么導(dǎo)入IDEA并運(yùn)行(超詳細(xì))
這篇文章主要介紹了Eclipse項(xiàng)目怎么導(dǎo)入IDEA并運(yùn)行(超詳細(xì)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10Java中通過ZipOutputStream類如何將多個(gè)文件打成zip
ZipOutputStream?是Java中用于創(chuàng)建ZIP文件的類,它是?java.util.zip?包中的一部分,通過使用?ZipOutputStream?,可以將多個(gè)文件壓縮到一個(gè)ZIP文件中,這篇文章主要介紹了Java中(ZipOutputStream)如何將多個(gè)文件打成zip,需要的朋友可以參考下2023-09-09SpringCloud URL重定向及轉(zhuǎn)發(fā)代碼實(shí)例
這篇文章主要介紹了SpringCloud URL重定向及轉(zhuǎn)發(fā)代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03在webservice里調(diào)用耗時(shí)方法出錯的解決方案
這篇文章主要介紹了在webservice里調(diào)用耗時(shí)方法出錯的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07spring中向一個(gè)單例bean中注入非單例bean的方法詳解
Spring是先將Bean對象實(shí)例化之后,再設(shè)置對象屬性,所以會先調(diào)用他的無參構(gòu)造函數(shù)實(shí)例化,每個(gè)對象存在一個(gè)map中,當(dāng)遇到依賴,就去map中調(diào)用對應(yīng)的單例對象,這篇文章主要給大家介紹了關(guān)于spring中向一個(gè)單例bean中注入非單例bean的相關(guān)資料,需要的朋友可以參考下2021-07-07???????Spring多租戶數(shù)據(jù)源管理 AbstractRoutingDataSource
本文技術(shù)了???????Spring多租戶數(shù)據(jù)源管理 AbstractRoutingDataSource,下文詳細(xì)內(nèi)容介紹,需要的小伙伴可以參考一下2022-05-05idea導(dǎo)入springboot項(xiàng)目沒有maven的解決
這篇文章主要介紹了idea導(dǎo)入springboot項(xiàng)目沒有maven的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04Java語言的Comparable和Comparator區(qū)別
這篇文章主要介紹了Java語言的Comparable和Comparator區(qū)別,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06