java编写一个方法,将两个数置换,要求方法的逻辑关系与被置换的两个数据对象的类型无关。 输入 两个数 提示:用next()方法输入泛型数据 输出 置换后的两个数 样例输入 Copy 111 222 样例输出 Copy 222 111 提示 输出的两个数之间有两个空格。
时间: 2024-09-12 17:13:04 浏览: 52
操作系统课程设计页面置换
3星 · 编辑精心推荐
在Java中,你可以创建一个通用的方法来交换任意类型的两个变量,这通常是通过创建一个新的临时变量来实现的,因为Java并不支持直接赋值操作的“交换”语法。这个方法可以使用泛型来达到类型无关性。这里是一个例子:
```java
public class SwapUtils {
// 使用泛型的方法来交换两个对象的值
public static <T> void swap(T a, T b) {
if (a instanceof Integer || a instanceof Double) { // 检查是否为基本类型包装类,如果需要更广泛的类型支持,可以删除这行检查
T temp = a;
a = (T) ((Comparable<T>) b).compareTo(a) > 0 ? b : a; // 对数值进行比较并交换
b = temp;
} else if (a instanceof String) { // 如果是字符串,使用其自然顺序进行交换
char[] arrA = ((String)a).toCharArray();
char[] arrB = ((String)b).toCharArray();
for (int i = 0; i < Math.min(arrA.length, arrB.length); i++) {
char temp = arrA[i];
arrA[i] = arrB[i];
arrB[i] = temp;
}
a = new String(arrA);
b = new String(arrB);
} else {
throw new IllegalArgumentException("Unsupported data type for swapping.");
}
System.out.println(a + " " + b); // 打印结果,注意这里有空格
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter the first number:");
Object num1 = scanner.next(); // 获取用户输入的数据
System.out.println("Enter the second number:");
Object num2 = scanner.next();
// 调用swap方法进行交换
swap(num1, num2);
}
}
```
样例运行:
```
Enter the first number:
111
Enter the second number:
222
222 111
```
阅读全文