Java元组

来源:互联网 发布:淘宝网安卓版电脑下载 编辑:程序博客网 时间:2024/06/11 21:47

有时候,我们想一个对象可以方便持有多个对象,这样我们就需要使用元组。

package generics;/** * 元组概念 将一组对象直接打包存储于其中的 单一对象(这个容器对象允许读取其中元素,但是不允许向其中存放新的对象)。 *  *  */// 二维元组class TwoTuple<A, B> {    // final使得first和second无法修改    public final A first;    public final B second;    public TwoTuple(A a, B b) {        this.first = a;        this.second = b;    }    public String toString() {        return " " + first + " " + second;    }}/** * 使用继承,拓展元组 */// 三维元组class ThreeTuple<A, B, C> extends TwoTuple<A, B> {    public final C third;    public ThreeTuple(A a, B b, C c) {        super(a, b);        this.third = c;    }    public String toString() {        return " " + first + " " + second + " " + third;    }}// 四围元组class FourTuple<A, B, C, D> extends ThreeTuple<A, B, C> {    public final D fourth;    public FourTuple(A a, B b, C c, D d) {        super(a, b, c);        this.fourth = d;    }    public String toString() {        return " " + first + " " + second + " " + third + " " + fourth;    }}// 五维元组class FiveTuple<A, B, C, D, F> extends FourTuple<A, B, C, D> {    public final F five;    public FiveTuple(A a, B b, C c, D d, F f) {        super(a, b, c, d);        this.five = f;    }    public String toString() {        return "" + first + " " + second + " " + third + " " + fourth + " "                + five;    }}class Amphibian {};class Vehicle {};public class TupleDemo<A, B> {    static TwoTuple<String, Integer> f() {        return new TwoTuple<String, Integer>("hi", 47);    }    static ThreeTuple<Amphibian, String, Integer> g() {        return new ThreeTuple<Amphibian, String, Integer>(new Amphibian(),                "hi", 47);    }    static FourTuple<Vehicle, Amphibian, String, Integer> h() {        return new FourTuple<Vehicle, Amphibian, String, Integer>(                new Vehicle(), new Amphibian(), "hi", 47);    }    static FiveTuple<Vehicle, Amphibian, String, Integer, Double> i() {        return new FiveTuple<Vehicle, Amphibian, String, Integer, Double>(                new Vehicle(), new Amphibian(), "hi", 47, 11.1);    }    public static void main(String[] args) {        TwoTuple<String, Integer> ttsi=f();        System.out.println(ttsi);        System.out.println(g());        System.out.println(h());        System.out.println(i());    }}输出 hi 47 generics.Amphibian@6d06d69c hi 47 generics.Vehicle@7852e922 generics.Amphibian@4e25154f hi 47generics.Vehicle@70dea4e generics.Amphibian@5c647e05 hi 47 11.1
0 0
原创粉丝点击