查阅泛型相关资料,定义一个类,实现如下功能 1、实现一个数组的排序,数组的类型不规定,能够支持各种数据类型的排序
时间: 2023-11-17 11:05:27 浏览: 34
可以使用 Java 的泛型实现这个功能。定义一个泛型类,类中包含一个排序方法,可以对任何类型的数组进行排序。示例代码如下:
```java
public class GenericSort<T extends Comparable<T>> {
public void sort(T[] arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j].compareTo(arr[j + 1]) > 0) {
T temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
}
```
上述代码中,`<T extends Comparable<T>>` 中的 `T` 表示泛型类型,`extends Comparable<T>` 表示限定这个泛型类型必须实现 `Comparable` 接口,以便在排序时进行比较。`sort` 方法中的 `T[] arr` 表示一个泛型类型的数组,可以是任何类型。
使用示例:
```java
public static void main(String[] args) {
Integer[] arr1 = {3, 1, 4, 1, 5, 9, 2, 6};
GenericSort<Integer> sort1 = new GenericSort<>();
sort1.sort(arr1);
System.out.println(Arrays.toString(arr1));
String[] arr2 = {"hello", "world", "java", "golang", "python"};
GenericSort<String> sort2 = new GenericSort<>();
sort2.sort(arr2);
System.out.println(Arrays.toString(arr2));
}
```
输出结果:
```
[1, 1, 2, 3, 4, 5, 6, 9]
[golang, hello, java, python, world]
```
其中,`Arrays.toString()` 可以将数组转换成字符串输出。可以看到,上述代码可以对任何类型的数组进行排序。