黑马程序员技术交流社区
标题:
反转数组中的所有元素?
[打印本页]
作者:
weidong10heima
时间:
2016-7-8 07:05
标题:
反转数组中的所有元素?
分析以下需求,并用代码实现:
(1)编写一个泛形方法,实现指定位置数组元素的交换
(2)编写一个泛形方法,接收一个任意数组,并反转数组中的所有元素
作者:
cat73
时间:
2016-7-8 16:55
本帖最后由 cat73 于 2016-7-8 17:01 编辑
泛型不支持基础数据类型,你可以考虑通过重载实现支持基础数据类型。
public <T> void flip(T[] array) {
int i = 0;
int j = array.length - 1;
while(i < j) {
swap(array, i++, j--);
}
}
public <T> void swap(T[] array, int i, int j) {
T t = array[i];
array[i] = array[j];
array[j] = t;
}
复制代码
作者:
怡蓝
时间:
2016-7-8 17:02
好复杂,好复杂啊,好复杂啊啊啊啊啊啊啊啊
作者:
longforus
时间:
2016-7-8 17:31
public static <T> T[] swap (T[] list, int p1, int p2) throws ArrayIndexOutOfBoundsException{
if (p1 < 0 || p1 > list.length - 1) {
throw new ArrayIndexOutOfBoundsException ("p1 下标越界");
}
if (p2 < 0 || p2 > list.length - 1) {
throw new ArrayIndexOutOfBoundsException ("p2 下标越界");
}
T temp = list[p1];
list[p1] = list[p2];
list[p2] = temp;
return list;
}
public static <T> T[] inversionArray (T[] arr){
T temp;
int n;
for (int i = 0; i < arr.length / 2; i++) {//每次循环交换前后相对位置的2元素
n = arr.length-i-1;
temp = arr[i];
arr[i] = arr[n];
arr[n] = temp;
}
return arr;
}
复制代码
未做严格测试哦```我以为是这种
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2