Java数组反转的方法
2016-09-27 17:13
295 查看
反转数组的操作有一些工具类给出了实现,如org.apache.commons.lang3.ArrayUtils.reverse()其他集合类的反转Collections.reverse(ArrayList list)等。
使用这些简单快捷,以下是自己的几种实现方式
数字类型的可以使用异或操作完成首尾交换操作:
使用这些简单快捷,以下是自己的几种实现方式
数字类型的可以使用异或操作完成首尾交换操作:
public static String reverseNumArray(int[] array){ int head = 0; int tail = array.length - 1; int length = array.length / 2; for(int i = 0 ; i < length ; i++){ array[head] = array[head]^array[tail]; array[tail] = array[tail]^array[head]; array[head] = array[head]^array[tail]; head++; tail--; } StringBuffer sb = new StringBuffer(); for(int i = 0 ; i < array.length ; i++){ sb.append(array[i]); if(i < array.length-1){ sb.append(" "); } } return sb.toString(); }其他类型的需要使用一个临时容器来完成交换操作:
public static String reverseStr(String resource){ String[] strArray = resource.split(" "); StringBuffer sb = new StringBuffer(); int head = 0; int tail = strArray.length-1; int length = strArray.length/2; String temp = ""; for(int i = 0 ; i < length ; i++){ temp = strArray[head]; strArray[head] = strArray[tail]; strArray[tail] = temp; head++; tail--; } for(int i = 0 ; i < strArray.length ; i++){ sb.append(strArray[i]); if(i < strArray.length-1){ sb.append(" "); } } return sb.toString(); }使用工具类的实现
public static String reverseStrUtil(String resource){ StringBuffer sb = new StringBuffer(); String[] array = resource.split(" "); ArrayUtils.reverse(array); for(int i = 0 ; i < array.length ; i++){ sb.append(array[i]); if(i < array.length-1){ sb.append(" "); } } return sb.toString(); }ArrayUtils.reverse()源码:
public static void reverse(final Object[] array, int startIndexInclusive, int endIndexExclusive) { if (array == null) { return; } int i = startIndexInclusive < 0 ? 0 : startIndexInclusive;//等同与上面第二段代码中的head变量 int j = Math.min(array.length, endIndexExclusive) - 1;//等同与上面第二段代码中的tail变量 Object tmp;//等同与上面第二段代码中的temp变量 while (j > i) {//使用while循环判断首尾的大小关系,比自己的实现方式好了不止一个级别,毕竟是专家级的代码 tmp = array[j]; array[j] = array[i]; array[i] = tmp; j--; i++; } }
相关文章推荐
- Java实现数组反转翻转的方法
- Java实现数组反转翻转的方法实例
- java查找方法和数组反转
- Java实现数组反转翻转的方法
- Java实现数组反转翻转的方法
- Java数组拷贝方法arraycopy()
- java数组定义方法
- JAVA里实现一个数组全排列的方法
- JAVA中关于数组初始化的常用方法
- JAVA 中数组的几种排序方法
- java中把对象转化为byte数组的方法
- java中数组与List相互转换的方法
- JAVA 中数组的几种排序方法 标准的!
- Flex array数组到java Object[] 的转换方法
- Java测试二: 这个方法搜索一个字符数组中是否存在某个字符
- Java学习笔记---5.Java数组和方法
- 总结几种Java字符串反转的实现方法
- [java]关于数组和List之间相互转换的方法
- java中把对象转化为byte数组的方法
- JAVA对象数组的初始化方法