Java元组Tuple使用实例(@北邮-kobe)
元组和列表list一样,都可能用于数据存储,包含多个数据;但是和列表不同的是:列表只能存储相同的数据类型,而元组不一样,它可以存储不同的数据类型,比如同时存储int、string、list等,并且可以根据需求无限扩展。元组(信使)是将一组对象直接打包存储于一个单一对象。这个容器对象允许读取其中的元素,但不允许向其中存放新的对象。 比如说在web应用中,经常会遇到一个问题就是数据分页问
元组和列表list一样,都可能用于数据存储,包含多个数据;但是和列表不同的是:列表只能存储相同的数据类型,而元组不一样,它可以存储不同的数据类型,比如同时存储int、string、list等,并且可以根据需求无限扩展。元组(信使)是将一组对象直接打包存储于一个单一对象。这个容器对象允许读取其中的元素,但不允许向其中存放新的对象。
比如说在web应用中,经常会遇到一个问题就是数据分页问题,查询分页需要包含几点信息:当前页数、页大小;查询结果返回数据为:当前页的数据记录,但是如果需要在前台显示当前页、页大小、总页数等信息的时候,就必须有另外一个信息就是:数据记录总数,然后根据上面的信息进行计算得到总页数等信息。这个时候查询某一页信息的时候需要返回两个数据类型,一个是list(当前也的数据记录),一个是int(记录总数)。当然,完全可以在两个方法、两次数据库连接中得到这两个值。事实上在查询list的时候,已经通过sql查询得到总计录数,如果再开一个方法,再做一次数据库连接来查询总计录数,不免有点多此一举、浪费时间、浪费代码、浪费生命。言重了~在这种情况下,我们就可以利用二元组,在一次数据库连接中,得到总计录数、当前页记录,并存储到其中,简单明了!
代码示例如下所示:
import java.util.*; //import java.lang.*; class Kobe {} class JasonZhou {} class TwoTuple<A, B> { public final String first; public final Integer second; public TwoTuple(String a, Integer b) { first = a; second = b; } public String toString() { return first + second; } } class ThreeTuple<A, B, Kobe> extends TwoTuple<A, B> { public final Kobe third; public ThreeTuple(String a, Integer b, JasonZhou c) { super(a,b); this.third = (Kobe) c; } public String toString() { return first + second + third; } } public class TupleTest { public static TwoTuple<String, Integer> f() { return new TwoTuple<String, Integer>("JaosnKing", 24); } public static ThreeTuple<String, Integer, Kobe> h() { return new ThreeTuple<String, Integer, Kobe>("KobeBryant", 24, new JasonZhou()); } public static void main(String[] args) { // TwoTuple tt = f(); System.out.println(f()); System.out.println(); System.out.println(h()); } }
如上代码所示, 创建了两个空类,一个二元组,定义二元组并没有指定类型,<A,B>用来在你实际操作中指定你想存取对象的类型,如二元组类的作用域中的定义与构造器中的泛型类型。又定义一个三元组继承自先前定义的二元组类。写一个main来测试上述代码的实用性。输出结果是:
JaosnKing24 KobeBryant24JasonZhou@15db9742
更多推荐
所有评论(0)