泛型方法

1,有时需要对类型T进行限制,比如,如果T的对象调用了compareTo方法,那就必须实现comparable接口;
public static T min(T[] a)…
2,而且这个方法,只能被实现了comparable接口的类调用,否则报错。
3,注意,用extends而不是implements
计算泛型数组的最大值和最小值。

package demo3;

import java.time.LocalDate;

public class PairTest2 {
	public static void main(String[] args) {
		LocalDate[] birthdays = {
			LocalDate.of(1906, 12, 4),
			LocalDate.of(1946, 10, 14),
			LocalDate.of(1996, 2, 24),
			LocalDate.of(1976, 1, 8),
		};
		Pair<LocalDate> mm = ArrayAlg.minmax(birthdays);
		System.out.println(mm.getFirst());
		System.out.println(mm.getSecond());
	}
}
package demo3;

public class ArrayAlg {

	public static <T extends Comparable> Pair<T> minmax(T[] a) {
		if(a == null || a.length == 0) return null;
		T min = a[0];
		T max = a[0];
		for(int i = 1;i < a.length; i++) {
			if(min.compareTo(a[i]) > 0) min = a[i];
			if(max.compareTo(a[i]) < 0) max = a[i];
		}
		return new Pair<>(min,max);
	}
}

package demo3;

public class Pair<T> {
	private T first;
	private T second;
	
	public Pair() {
		first =null;
		second = null;
	}
	
	public Pair(T first,T second) {
		this.first = first;
		this.second = second;
	}
	
	public T getFirst() {
		return first;
	}
	
	public T getSecond() {
		return second;
	}
	
	public void setFirst(T first) {
		this.first = first;
	}
	
	public void setSecond(T second) {
		this.second = second;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值