java元组-javatuples

前边为了实现一个功能,只是需要List<Map<Stirng,List>>这样的数据结构,但是却需要先定义了这样的一个数据结构  Map<String,List<List<List<String>>>>,并且代码写的比较臃肿,不易于后人阅读和维护。如果使用javatuples有可能又是另一种思路

  Martin Fowler 在《重构...》这本书提到过,只能写出一个让计算机理解的程序只是一个普通程序员,只有写出让人理解的程序才是牛逼的程序员。

因为就算你写的是坨狗屎,我们的计算机也会帮我们转换成自己想要的。

javatuples:

  javatuples 1.2是一个演变版本。现在元组是可比较的,可排序的,并且已经添加了新的静态方法来从迭代中获取元组,即使这些迭代持有比新元组需要的元素更多的元素。

  javatuples 为元组提供一到十个元素:

 1    Unit<A> (1 element)
 2    Pair<A,B> (2 elements)
 3    Triplet<A,B,C> (3 elements)
 4    Quartet<A,B,C,D> (4 elements)
 5    Quintet<A,B,C,D,E> (5 elements)
 6    Sextet<A,B,C,D,E,F> (6 elements)
 7    Septet<A,B,C,D,E,F,G> (7 elements)
 8    Octet<A,B,C,D,E,F,G,H> (8 elements)
 9    Ennead<A,B,C,D,E,F,G,H,I> (9 elements)
10    Decade<A,B,C,D,E,F,G,H,I,J> (10 elements)
  • 类型安全
  • 不变的
  • 可迭
  • 可序列化
  • Comparable(implements Comparable <Tuple >)
  • 实现equals(...)hashCode()
  • 实现toString()

  javatuples 元组提供一些实用方法,如contains(...)containsAll(...)indexOf(...)lastIndexOf(...),它们的工作方式与集合中的方式完全相同。更多的我就不讲了 ,链接贴在下边,请自行观阅,我认为你自己看会更有意思

我只是想到了开发中的一些思路,至于java元组类库的介绍请参照这位仁兄   http://www.cnblogs.com/aspwebchh/p/6645732.html

参照:   https://github.com/javatuples/javatuples

    http://www.javatuples.org/index.html

时间: 2024-10-18 16:18:38

java元组-javatuples的相关文章

Java元组类型之javatuples

转载:Java元组类型之javatuples 关于方法的返回值,经常需要返回2个值或多个值的一个序列,比如数据表的一条记录,文件的一行内容等.除了使用数组Array.集合(List.Set.Map)这些容器类型之外,在Java中我们就必须创建一个Class来作为返回类型. 在很多语言中都提供元组类型Tuple的支持,比如 .NET Framework 最多支持7个元素的元组,参考这里: C#代码 var population = new Tuple<string, int, int, int,

java元组

//来自java编程思想 public class TwoTuple<A, B> { public final A first; public final B second; public TwoTuple(A a, B b) { this.first = a; this.second = b; } } public class ThreeTuple<A, B, C> extends TwoTuple<A, B> { public final C third; publ

Java中元组的使用

元组在计算机领域有着特殊的意义,这个名字听起来似乎有些陌生, 平时在写代码也基本没什么应用场景, 然而, 出人意料的是, 元组跟程序设计密切相关, 可能有的同学不知道, 关系数据库中的「纪录」的另一个学术性的名称就是「元组」, 一条记录就是一个元组, 一个表就是一个关系, 纪录组成表, 元组生成关系, 这就是关系数据库的核心理念. 元组是关系数据库不可脱离的部份, 但是在程序设计中, 元组并不显得那么不可或缺. 有一些编程语言本身就自带元组的语法, 比如说python.F#.haskell.sc

【转】Java程序员常用工具类库 - 目录

原文地址:http://rensanning.iteye.com/blog/1553076 有人说当你开始学习Java的时候,你就走上了一条不归路,在Java世界里,包罗万象,从J2SE,J2ME,J2EE三大平台,到J2EE中的13中核心技术,再到Java世界中万紫千红的Framework......等等,你会发现自己总是在学习,但总是有自己不知道的东西. 当你看到代码工程的lib下各种各样的jar文件的时候,你是否能全部知道他们都是干什么用的,为什么要导入到工程下吗? 从Google你能搜索

《HelloGitHub》第 26 期

公告 五月初 hellogithub.com 网站做了优化和试错.因为我个人能力原因,导致这段时间网站出现了间断性不能访问,现在问题已经修复.多谢大家的支持.理解和反馈. 网站新增了"星图"的功能,还在测试阶段欢迎反馈问题. 总而言之,今年已过半 HelloGitHub 还在路上,希望大家多多支持,我们会越来越好.?? <HelloGitHub>第 26 期 兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目.

【翻译】Flink Table 和 SQL API 概念与通用API

本文翻译自官网:https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/common.html Table API和SQL集成在共同API中.该API的中心概念是Table,用作查询的输入和输出.本文档介绍了使用Table API和SQL查询的程序的通用结构,如何注册 Table,如何查询Table以及如何发出 Table(数据). 两个 planner 之间的主要区别 表API和SQL程序的结构 创建一个Tab

【Java】用JDK1.5之后的新型数组遍历方法遍历HashMap、HashMap不应该存储多元组

在JDK1.5就多了一种for循环的遍历写法,现在应该没有人用JDK1.4了吧?我见那些2005年出的JAVA书,谭浩强系列的JAVA书都是使用JDK1.5了,当然JDK1.7已经使用的,据说JDK1.7是兼容JDK1.2~JDK1.7,现在的JAVA编程都是基于JDK1.5的.然而由于考试不要求或者其它什么原因,它并不受程序猿的青睐,而在平常实践用,旧式的循环中用多了,老程序猿依旧作为开发主力的情况,也就没有人敢于尝试这种新型的数组遍历方法了,其实这种方法在遍历HashMap的时候尤其有用,能

Java核心编程快速学习

Java核心编程部分的基础学习内容就不一一介绍了,本文的重点是JAVA中相对复杂的一些概念,主体内容如下图所示. 反射reflect是理解Java语言工作原理的基础,Java编译器首先需要将我们编写的.java源文件编译为.class字节码,然后再JVM虚拟机上运行,接下来通过一个表格,来了解反射的基本操作. 功能 示例 泛化的Class引用 Class<?> intClass = int.class Class<? extends Number> bounded = int.cl

python的列表,元组和字典简单介绍

引 入 java                                   python 存取多个值:数组或list集合 ------------------------> 列表,元组 key-value格式:    Map        ------------------------>    字典 自己学习发现,java跟python这两门面向对象语言在数据类型的定义上,很多思想都是互通的,这里不说java,简单介绍一下python的列表,元组和字典. 一.列表 List: 最通