首页 > 图灵资讯 > 技术篇>正文

Java 泛型是如何工作的?

2024-10-22 22:02:09

泛型允许创建类型未指定时就能使用的类和方法,实现方式是在类型名称中使用类型参数。语法:。类型推断有时会发生,例如:list names = new arraylist()。泛型支持动态存储不同类型的数据,例如队列:public class queue,其中 enqueue(item) 和 dequeue() 方法可以操作队列中任何类型的元素。

Java 泛型是如何工作的?

Java 泛型:深入理解

简介

泛型是一种编程技术,允许我们在不指定实际类型的情况下创建类、接口和方法。它们通过在类型名称中使用类型参数(也称为类型变量)来实现。

立即学习“Java免费学习笔记(深入)”;

语法

要创建泛型类型,我们在类型名称后指定一个或多个尖括号,其中包含类型参数:

public class Box<T> {
    private T value;
}

Box 类接受一个类型参数 T,该参数用于指定存储在盒子中的值类型。

类型推断

在许多情况下,Java 编译器可以推断类型参数,如下所示:

List<String> names = new ArrayList<>();

这里,List 的类型参数 T 被编译器推断为 String。

实战案例

以下是一个使用泛型创建队列的示例:

public class Queue<T> {
    private Node<T> head;
    private Node<T> tail;

    public void enqueue(T item) {
        Node<T> newNode = new Node<>(item);
        if (head == null) {
            head = tail = newNode;
        } else {
            tail.setNext(newNode);
            tail = newNode;
        }
    }

    public T dequeue() {
        if (head == null) {
            return null;
        }
        T item = head.getValue();
        head = head.getNext();
        if (head == null) {
            tail = null;
        }
        return item;
    }
}

此队列可以存储任何类型的元素,因为类型参数 T 未指定。您可以如下方式使用它:

Queue<String> stringQueue = new Queue<>();
stringQueue.enqueue("Hello");
stringQueue.enqueue("World");
System.out.println(stringQueue.dequeue());
// 输出: Hello

以上就是Java 泛型是如何工作的?的详细内容,更多请关注图灵教育其它相关文章!

上一篇 lambda 表达式如何在 Java 函数式编程中发挥作用?
下一篇 返回列表

文章素材均来源于网络,如有侵权,请联系管理员删除。