Java 为什么Arrays类中没有静态方法来交换数组的元素?
我知道这很简单,也很容易理解,但为什么不加上呢Java 为什么Arrays类中没有静态方法来交换数组的元素?,java,arrays,swap,Java,Arrays,Swap,我知道这很简单,也很容易理解,但为什么不加上呢 public static void swap(Object[] array, int i, int j) { Object temp = array[i]; array[i] = array[j]; array[j] = temp; } 只调用Arrays.swaparr,i,j要比每次从头开始重新实现要简单得多。主要是因为在所有使用Java的人看来,我们并不真正需要或想要它 请记住,添加到API中的每个方法都是一
public static void swap(Object[] array, int i, int j) {
Object temp = array[i];
array[i] = array[j];
array[j] = temp;
}
只调用Arrays.swaparr,i,j要比每次从头开始重新实现要简单得多。主要是因为在所有使用Java的人看来,我们并不真正需要或想要它 请记住,添加到API中的每个方法都是一项长期维护承诺;如果它不能承载自己的重量,它将无法完成。很容易高估我们写给其他人的代码的价值,包括我自己在内,从来没有想到这段代码会对其他人如此有用!;但是您需要在更广泛的Java社区中实际演示一个未满足的需求,这样它才值得采用 只添加一个交换对象数组的方法是任意的:为了完整性和与其他方法的一致性,您还应该为所有8个基本类型添加重载;但这真的值得吗 您可以自己实现,也可以使用Arrays.asList包装阵列:
Collections.swap(Arrays.asList(array), i, j);
在实施说明中,它不需要是通用的
public static void swap(Object[] array, int i, int j) {
Object temp = array[i];
array[i] = array[j];
array[j] = temp;
}
这是可行的,因为数组的差异。除非Java的API架构师出现,否则我们只能猜测原因。这主要是基于观点。你真的投票来结束你自己的问题吗?@AndyTurner,是的。@Lealcelderio,当然。@GrzegorzGórkiewicz我不知道你能做到这一点。不知怎的,它是为集合而不是数组实现的。我打赌数组是第一个,在那里使用它会更自然。每次我需要写一些没有任何外部依赖的简单的东西,在一个文件中,我将不得不再次编写这个方法,只是为了编译。集合中的swap方法调用中是否存在对象开销?我打赌有。