加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java泛型

发布时间:2020-12-15 07:58:24 所属栏目:Java 来源:网络整理
导读:1.泛型类与泛型方法 package Generic; import java.io.Serializable; import java.time.LocalDate; import Generic.ArrayAlg.Pair; public class ArrayDemo{ public static void main(String[] args) { LocalDate[] birthdays = { LocalDate.of( 1906,12,9 )

1.泛型类与泛型方法

package Generic;

import java.io.Serializable;
import java.time.LocalDate;
import Generic.ArrayAlg.Pair;

public class ArrayDemo{
    public static void main(String[] args) {
        LocalDate[] birthdays = {
            LocalDate.of(1906,12,9),LocalDate.of(1815,10),LocalDate.of(1903,3),LocalDate.of(1910,6,22)
        };
        Pair<LocalDate> mm = ArrayAlg.minmax(birthdays);
        System.out.println("min = " + mm.getFirst());
        System.out.println("max = " + mm.getSecond());
    }
}

class ArrayAlg{    
    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 this.first;
        }
        
        public T getSecond() {
            return this.second;
        }
        
        public void setFirst(T newValue){
            first = newValue;
        }
        
        public void setSecond(T newValue) {
            second = newValue;
        }
    }
    
    public class Interval<T extends Comparable & Serializable> implements Serializable{
        private T lower;
        private T upper;

        public Interval(T first,T second) {
            if(first.compareTo(second)<=0) {
                lower = first;
                upper = second;
            }else {
                lower = second;
                upper = first;
            }
        }
    }
    
    public static <T extends Comparable> Pair<T> minmax(T[] array) {
        if (array == null || array.length == 0) {
            return null;
        }
        
        T min = array[0];
        T max = array[0];
        for (int i = 1; i < array.length; i++) {
            if (min.compareTo(array[i]) > 0) {
                min = array[i];
            }
            if (max.compareTo(array[i]) < 0) {
                max = array[i];
            }
        }
        
//        ArrayAlg arrayAlg = new ArrayAlg();
//        return arrayAlg.new Pair<>(min,max);
        return (new ArrayAlg()).new Pair<>(min,max);//这条语句等同于上面两行
    }
}

运行结果:

min = 1815-12-10
max = 1910-06-22

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读