Java實現數組翻轉


1.Java提供了一些工具包實現了數組翻轉,這裏就不在贅述了

   reverse。。。


2.還可以通過倒敘循環,重新new一個數組進行賦值,例如

private static String[] reverseArray(String[] Array) {  
        String[] new_array = new String[Array.length];  
        for (int i = 0; i < Array.length; i++) {  
            // 反轉後數組的第一個元素等於源數組的最後一個元素:  
            new_array[i] = Array[Array.length - i - 1];  
        }  
        return new_array;  
    }  

3.但是是效率可不可以更高一些呢,還有在同一個數組上如何進行翻轉


例如數組:a,b,c,d,e,f,g

返回結果:g,f,e,d,c,b,a

分析:數組長度爲 7

           對應數組標記,數組從0開始,也就是0,1,2,3,4,5,6

           當長度爲單數時,中間位不需要互換,也就是d(4)不需要互換,也就是7/2取整結果3,3+1不需要互換,也就是length/2 +1不需要互換

           當長度爲雙數時,不需要考慮,全部進行互換


 總結:需要互換的數據爲0~(length/2 -1) 與 length/2 ~ (length -1)

           設置循環系統i=0,閾值爲lenth/2 - 1,同時倒敘獲取後面的參數進行互換。

public static void main(String[] args) {
		String[] num = {"1", "2", "3", "4", "5", "6"};

		for (int i = 0; i <= num.length / 2 - 1; i++) {
			String temp1 = num[i];
			String temp2 = num[num.length - i - 1];
			num[i] = temp2;
			num[num.length - i - 1] = temp1;
		}
		System.out.println(Arrays.asList(num).toString());
	}


暫時只想到只想到這些,如果大家有什麼更好的方式歡迎交流。

同時隱身知識點,java中的值傳遞與引用傳遞的區別。。。。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章