Java核心技术【卷一】——学习笔记(五)--泛型(二)

本文介绍如何定义和使用泛型类,包括Pair类的创建与应用,以及泛型在队列(Queue)接口的具体实现,展示了泛型在Java中的灵活性和实用性。

定义一个泛型类,泛型的意思就是可以随意更改定义类的数据类型

使用Pair<T>来进行定义

Main类:

package com.changsan.fanxing1;

public class Main1 {
    public static void main(String[] args) {
        Pair<Integer> ss=new Pair<>(12,88888);
        /**两个方法都可以
         * Pair<Integer> ss1=Pair.create(12,8888);
         */
        Integer first=ss.getFirst();
        Integer second=ss.getSecond();
        System.out.println("first:"+first+";second:"+second);

    }
}

Pair类:

package com.changsan.fanxing1;

public class Pair<T> {

    private T first;
    private T second;

    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;
    }

    /**
     *
     * @param first
     * @param second
     * @param <S> 任意字母 后面与前面保持一致即可
     * @return
     */

    static <S> Pair<S> create(S first,S second){
        return new Pair<>(first,second);
    }
}

泛型可以继承

class Datelnterval extends Pair // after erasure
{
public void setSecond(LocalDate second) { . . . }
........

}

DateInterval便是继承后的类型,是个独立的类型,与 int ,String ,boolean 类似

Datelnterval interval = new Datelnterval(. . .);
Pair<Loca1Date> pair = interval; // OK assignment to superclass
pair.setSecond(aDate);

泛型的实际使用情况:

队列(Queue)的实现

public interface Queue<E> // a simplified form of the interface in the standard library
{
void add(E element) ;
E remove();
int size();

}

循环队列:

public class CircularArrayQueue<E> implements Queue<E> // not an actual library class

链表队列:

public class LinkedListQueue<E> iipleients Queue<E> // not an actual library class

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值