泛型(Generics)是一种编程语言特性,它允许在编写代码时使用未指定具体类型的变量、参数或返回值。泛型的作用是增加代码的灵活性和重用性,并提高代码的类型安全性。
泛型可以应用于各种数据结构和算法中,例如集合类(List、Set、Map等)、数据容器和通用算法等。通过使用泛型,我们可以编写更通用、更健壮的代码,而无需为每种类型单独编写代码。
使用泛型的语法是通过在定义类型、方法或类时使用占位符来表示未指定的类型。常见的占位符有 "T"(Type),“E”(Element),"K"(Key),"V"(Value)等。然后,在实际使用时,将具体的类型传递给这些占位符。
下面是一个使用泛型的简单示例:
// 定义一个泛型类 class Pair<T, U> { private T first; private U second; public Pair(T first, U second) { this.first = first; this.second = second; } public T getFirst() { return first; } public U getSecond() { return second; } } // 使用泛型类 Pair<Integer, String> pair = new Pair<>(1, "Hello"); int first = pair.getFirst(); // 返回 1 String second = pair.getSecond(); // 返回 "Hello"
在上面的示例中,我们定义了一个名为 Pair 的泛型类,它可以存储一对具有不同类型的值。在使用时,我们通过传递具体的类型(这里是 Integer 和 String)来实例化泛型类,并且可以使用 getFirst 和 getSecond 方法来获取存储的值。
通过使用泛型,我们可以创建更加通用和灵活的代码,同时减少类型转换和错误。