@Test
void f1() {
    String str = "hello";
    int i = 15;
    float p = 3.14159f;
    System.out.println(String.format("%s, %d, %x, %.3f", str, i, i, p));
}

// 输出,%x为16进制输出,小数会四舍五入
hello, 15, f, 3.142

元组

返回多个对象时,可以新建一个类,在这个类中定义几个对象的实例变量,然后返回这个类的对象。
不足:这个类不能通用,如果另一个方法返回了不同类型的对象,又要新建一个类。

所谓元组,就是将一组对象打包存储于其中的一个单一对象,这个容器对象可以读取其中的元素,但是不允许向其中存储新的对象。

// 二个元素的元组
public class Tuple2<T1, T2> {
    public final T1 _1;
    public final T2 _2;

    public Tuple2(T1 t1, T2 t2) {
        this._1 = t1;
        this._2 = t2;
    }

    @Override
    public String toString() {
        return String.format("[%s, %s]", _1, _2);
    }

    public static void main(String[] args) {
        Tuple2<String, Integer> tuple2 = new Tuple2<>("hello", 1);
        System.out.println(tuple2);
        // 输出:[hello, 1]
    }
}

// 三个元素的元组
class Tuple3<T1, T2, T3> extends Tuple2<T1, T2> {
    public final T3 _3;

    public Tuple3(T1 t1, T2 t2, T3 t3) {
        super(t1, t2);
        this._3 = t3;
    }

    @Override
    public String toString() {
        return String.format("[%s, %s, %s]", _1, _2, _3);
    }

    public static void main(String[] args) {
        Tuple3<Integer, Float, String> tuple3 = new Tuple3<>(1, 3.14f, "hello");
        System.out.println(tuple3);
        // 输出:[1, 3.14, hello]
    }
}
posted on 2023-04-04 08:33  madai109  阅读(9)  评论(0编辑  收藏  举报