Java的元组类型整理

// 1元组  
Unit<String> u = new Unit<String>("xo");  
// 2元组  
Pair<String,Integer> p = Pair.with("xo", 1217);  
// 3元组  
Triplet<String,Integer,Double> triplet = Triplet.with("xo", 1217, 1.0);   
//...  
          
KeyValue<String,String> kv = KeyValue.with("xo", "1217");  
LabelValue<String,String> lv = LabelValue.with("xo", "1217");  



另外,我们经常在Java中想返回“一个”键值对Pair,该怎么做? 


(1)Apache Struts1的LabelValueBean 

Java代码   收藏代码
  1. LabelValueBean lv = new LabelValueBean("xo""1217");  


(2)Guava的 Maps.immutableEntry  
Java代码   收藏代码
  1. Map.Entry<String,Integer> entry2 = Maps.immutableEntry("xo"1217);  


(3)Apache commons-collections的 KeyValue  
Java代码   收藏代码
  1. Map.Entry<String,Integer> entry3 = new DefaultMapEntry("xo"1217);  
  2. KeyValue<String,Integer> kv = new DefaultKeyValue("xo"1217);  


(4)Apache commons-lang3的 Pair  
Java代码   收藏代码
  1. Map.Entry<String,Integer> entry4 = new ImmutablePair<String, Integer>("xo"1217);  


(5)Apache HttpClient的 NameValuePair  
Java代码   收藏代码
  1. NameValuePair nv = new BasicNameValuePair("xo""1217");  


(6)Android的 Pair  
Java代码   收藏代码
  1. Pair<String, Integer> p = new Pair<String, Integer>("xo"1217);  


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


还有,Java 6提供AbstractMap.SimpleEntry<K,V>和AbstractMap.SimpleImmutableEntry<K,V> 

Java代码   收藏代码
  1. Map.Entry<String,Integer> entry1 = new AbstractMap.SimpleEntry<String, Integer>("xo"1217);  

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

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

https://github.com/javatuples/javatuples  

版本:javatuples-1.2.jar 

最多支持10个元素: 
  • 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)

常用的2元组Pair: 
  • KeyValue<A,B>
  • LabelValue<A,B>


参考资料: http://rensanning.iteye.com/blog/2068554

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小雄哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值