定义一个泛型类,泛型的意思就是可以随意更改定义类的数据类型
使用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
本文介绍如何定义和使用泛型类,包括Pair类的创建与应用,以及泛型在队列(Queue)接口的具体实现,展示了泛型在Java中的灵活性和实用性。
&spm=1001.2101.3001.5002&articleId=104413169&d=1&t=3&u=4a33c8faf59d45a385f0eb971259665f)
902

被折叠的 条评论
为什么被折叠?



