- 泛型在提高代码重用性方面的作用
- 在设计通用的集合操作API时,Java泛型允许我们编写一次代码,就可以应用于多种不同类型的集合,而无需为每种类型的集合单独编写方法。这大大提高了代码的重用性,减少了重复代码。例如,对于排序方法,如果没有泛型,我们可能需要为
List<Integer>
、List<String>
等不同类型的列表分别编写排序方法。但使用泛型后,一个方法就可以处理多种类型的列表。
- 实现对不同类型集合进行排序的方法(以
List
为例)
- 以下是使用Java泛型实现对不同类型
List
进行排序的代码示例:
import java.util.Collections;
import java.util.List;
public class GenericSortExample {
public static <T extends Comparable<T>> void sortList(List<T> list) {
Collections.sort(list);
}
}
- 代码解释:
<T extends Comparable<T>>
是泛型类型声明部分。这里定义了一个类型参数T
,并且要求T
类型必须实现Comparable<T>
接口。这是因为Collections.sort
方法要求列表中的元素必须是可比较的,这样才能进行排序。
sortList
方法接受一个List<T>
类型的参数,这样无论T
是Integer
、String
还是其他实现了Comparable
接口的类型,都可以传入这个方法进行排序。
- 使用示例:
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> intList = new ArrayList<>();
intList.add(3);
intList.add(1);
intList.add(2);
GenericSortExample.sortList(intList);
System.out.println(intList);
List<String> stringList = new ArrayList<>();
stringList.add("banana");
stringList.add("apple");
stringList.add("cherry");
GenericSortExample.sortList(stringList);
System.out.println(stringList);
}
}
- 在上述
main
方法中,分别创建了Integer
类型和String
类型的List
,并调用sortList
方法进行排序。这展示了通过泛型,一个排序方法可以应用于不同类型的List
,提高了代码的重用性。