4、编写一个类,其中包含一个排序的方法sort(),当传入的是一串整数,就按照从小到大的顺序输出,如果传入的是一个字符串,就将字符串反序输出。Java
时间: 2024-09-12 17:15:07 浏览: 38
vue实现将一个数组内的相同数据进行合并
在Java中,我们可以创建一个名为`Sortable`的通用类,它有一个泛型方法`sort()`,可以根据传入类型的特性来进行不同的操作。这里我们将利用Java的泛型和条件判断来实现:
```java
public class Sortable<T> {
public void sort(T data) {
if (data instanceof Integer[]) { // 判断是否是整数数组
Integer[] intArray = (Integer[]) data;
Arrays.sort(intArray);
System.out.println(Arrays.toString(intArray));
} else if (data instanceof String) { // 如果是字符串
char[] chars = ((String) data).toCharArray();
reverseArray(chars); // 反转字符串字符数组
System.out.println(new String(chars));
} else {
throw new IllegalArgumentException("Unsupported data type");
}
}
private void reverseArray(char[] arr) {
for (int i = 0; i < arr.length / 2; i++) {
char temp = arr[i];
arr[i] = arr[arr.length - 1 - i];
arr[arr.length - 1 - i] = temp;
}
}
}
// 使用示例:
Sortable<Integer[]> numbers = new Sortable<>();
numbers.sort(new Integer[]{5, 3, 8}); // 输出 [3, 5, 8]
Sortable<String> strings = new Sortable<>();
strings.sort("Hello"); // 输出 "olleH"
```
在这个例子中,`Sortable`类的`sort()`方法接收一个泛型参数`T`,然后通过`instanceof`检查数据类型。如果是整数数组,我们就直接调用`Arrays.sort()`;如果是字符串,则转换成字符数组并反转。
阅读全文