修改以下代码,将两个值的数据扩展到多个,比如有三个或更多个数据。实现changeOrder,把里面的数据都进行调换。 //例7-1 interface Pairable<T> { public T getFirst(); //得到有序对的第一个值 public T getSecond(); //得到有序对的第二个值 public void changeOrder(); //交换两个值的次序 } // end Pairablejava
时间: 2023-12-06 15:02:57 浏览: 52
可以使用可变参数来实现多个数据的扩展,同时在changeOrder方法中交换所有值的顺序。
```java
interface Pairable<T> {
public T getFirst(); // 得到有序对的第一个值
public T getSecond(); // 得到有序对的第二个值
public void changeOrder(T... values); // 交换所有值的次序
}
class Pair<T> implements Pairable<T> {
private T first;
private T second;
public Pair(T first, T second) {
this.first = first;
this.second = second;
}
public T getFirst() {
return first;
}
public T getSecond() {
return second;
}
public void changeOrder(T... values) {
int n = values.length;
if (n < 2) {
return;
}
T[] temp = (T[]) new Object[n];
for (int i = 0; i < n; i++) {
temp[i] = values[i];
}
for (int i = 0; i < n; i++) {
values[i] = temp[n - 1 - i];
}
}
}
```
示例代码中,Pairable接口中的changeOrder方法使用了可变参数,可以接收任意数量的值。在Pair类中,我们先将可变参数转换成一个数组,然后使用一个简单的循环将所有值的顺序进行交换。
阅读全文