Java元组Tuple使用实例(@北邮-kobe)

元组和列表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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值