在Java中如何将数组中的数据倒置

1.

在Java中如何将数组中的数据倒置

1)如果要自己实现这个reverse方法,最直观的方式就是新建一个数组,将原数组从最后往前一个个放进新的数组中,代码如下:

public class Test {
	public static void main(String[] args) {
		int[] ary={10,28,9,12,38,46,59};
		
		System.out.println(Arrays.toString(reverseA(ary)));
		
		
	}
	public static int[] reverseA(int[] arry){
		int length=arry.length;
		int[] re=new int[length];
		for(int i=0;i<length;i++){
			re[length-1-i]=arry[i];
		}
		arry=re;
		return arry;
		
	}
	
	
	
	
}

 2..在原数组上进行操作了,这时的思路是在原数组上进行元素互换,代码如下:

对称交换  效率比所有的交换效率要高

 

import java.util.Arrays;


public class Test {
	public static void main(String[] args) {
		int[] ary={10,28,9,12,38,46,59};
		
		
		System.out.println(Arrays.toString(ary));
		reverseB(ary);
		System.out.println(Arrays.toString(ary));
		
	}
	public static void reverseB(int[] arry){
		
		for(int i=0;i<arry.length/2;i++){
			int temp=arry[i];
			arry[i]=arry[arry.length-1-i];
			arry[arry.length-1-i]=temp;
		}
		
		
	}
	
	
	
	
}

 3.使用集合个工具类: Collections.reverse(ArrayList) 将数组进行反转

 

import java.util.Arrays;
import java.util.Collections;

public class Demo {
          public static void main(String[] args) {
			int[] arry={6,10,18,20,1,35,35};
			 System.out.println("反转前排序: " + Arrays.toString(arry));  
			 ArrayList arrayList = new ArrayList(); 
			 for(int a:arry){
				 arrayList.add(a);
			 }
			 System.out.println(arrayList);
			 Collections.reverseOrder();
			 Collections.reverse(arrayList);
			 System.out.println("反转后的顺序是:"+arrayList);
		}
}

 

posted @ 2018-05-02 19:37  雪落无痕1  阅读(1339)  评论(0编辑  收藏  举报