java元组_Java元组类型之javatuples

参考这里:

var population = new Tuple(

"New York", 7891957, 7781984,

7894862, 7071639, 7322564, 8008278);

Scala最多支持22个元素的元组,参考这里:

val t = new Tuple4(4,3,2,1)

val t = (4,3,2,1) // syntactic sugar

val sum = t._1 + t._2 + t._3 + t._4

C++(STL)的Tuple,参考这里:

tuple t(5, "foo", "bar");

cout << t.get<1>(); // outputs "foo"

先看看Java中如果想返回“一个”键值对Pair,该怎么做?

(1)Apache Struts1的LabelValueBean

LabelValueBean lv = new LabelValueBean("rensanning.iteye.com", "9527");

(2)Guava的Maps.immutableEntry

Map.Entry entry2 = Maps.immutableEntry("rensanning.iteye.com", 9527);

(3)Apache commons-collections的KeyValue

Map.Entry entry3 = new DefaultMapEntry("rensanning.iteye.com", 9527);

KeyValue kv = new DefaultKeyValue("rensanning.iteye.com", 9527);

(4)Apache commons-lang3的Pair

Map.Entry entry4 = new ImmutablePair("rensanning.iteye.com", 9527);

(5)Apache HttpClient的NameValuePair

NameValuePair nv = new BasicNameValuePair("rensanning.iteye.com", "9527");

(6)Android的Pair

Pair p = new Pair("rensanning.iteye.com", 9527);

。。。。。。等等还有很多,你也可以自己扩展Map.Entry或者封装Class。

Java 6提供AbstractMap.SimpleEntry和AbstractMap.SimpleImmutableEntry

Map.Entry entry1 = new AbstractMap.SimpleEntry("rensanning.iteye.com", 9527);

把这两个Entity作为静态来嵌入到标示为abstract的AbstractMap里,这个API给的是相当的奇怪!

javatuples是一个很简单的lib,它没有什么华丽的功能,就是提供了支持返回多个元素的一些类。

https://github.com/javatuples/javatuples

版本:javatuples-1.2.jar

最多支持10个元素:

Unit (1 element)

Pair (2 elements)

Triplet (3 elements)

Quartet (4 elements)

Quintet (5 elements)

Sextet (6 elements)

Septet (7 elements)

Octet (8 elements)

Ennead (9 elements)

Decade (10 elements)

常用的2元组Pair:

KeyValue

LabelValue

// 1元组

Unit u = new Unit("rensanning.iteye.com");

// 2元组

Pair p = Pair.with("rensanning.iteye.com", 9527);

// 3元组

Triplet triplet = Triplet.with("rensanning.iteye.com", 9527, 1.0);

//...

KeyValue kv = KeyValue.with("rensanning.iteye.com", "9527");

LabelValue lv = LabelValue.with("rensanning.iteye.com", "9527");

参考:

http://tech.puredanger.com/2010/03/31/do-we-want-a-java-util-pair/

http://mail.openjdk.java.net/pipermail/core-libs-dev/2010-March/003995.html

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2014-05-20 10:58

浏览 25814

评论

2 楼

seu_04004414

2015-07-21

总结的很666666666

38687d1a1ad71d37c86f287056834d1a.gif

1 楼

di1984HIT

2014-07-22

写的很好~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值