Java編程那些事兒46—數組使用樣本2

來源:互聯網
上載者:User
 

Java編程那些事兒46—數組使用樣本2鄭州遊戲學院 陳躍峰出自:http://blog.csdn.net/mailbomb 6.3.4 判斷數組元素是否重複         要求:判斷一個數組中是否存在相同的元素,如果存在相同的元素則輸出“重複”,否則輸出“不重複”。         該題中如果需要判斷數組中元素是否重複,則需要對數組中的元素進行兩兩比較,如果有任意一組元素相等,則該數組中的元素存在重複,如果任意一組元素都不想等,則表示數組中的元素不重複。         實現思路:假設數組中的元素不重複,兩兩比較數組中的元素,使用數組中的第一個元素和後續所有元素比較,接著使用數組中的第二個元素和後續元素比較,依次類推實現兩兩比較,如果有一組元素相同,則數組中儲存重複,結束迴圈。把比較的結果儲存在一個標誌變數裡,最後判斷標誌變數的值即可。         則實現的代碼如下:                   int[] n = {1,2,3,1,0};                   boolean flag = true;   //假設不重複                   for(int i = 0;i < n.length – 1;i++){  //迴圈開始元素                            for(int j = i + 1;j < n.length;j++){ //迴圈後續所有元素                                     //如果相等,則重複                                     if(n[i] == n[j]){                                               flag = false; //設定標誌變數為重複                                               break;      //結束迴圈                                     }                            }                   }                   //判斷標誌變數                   if(flag){                            System.out.println(“不重複”);                   }else{                            System.out.println(“重複”);                   }         在該代碼中,flag變數儲存是否重複,true代表不重複,false代表重複。外部迴圈中迴圈變數i代表第一個元素的下標,內部迴圈中迴圈變數j代表後續元素的下標,當i為零時和後續所有元素比較,然後當i為1時也和後續所有元素比較,依次類推,這樣實現所有元素之間的兩兩比較。然後如果元素相同,則代表有重複,把flag變數的值置成flase,結束迴圈。最後根據flag變數的值就可以判斷是否重複了。 6.3.5 判斷數組是否對稱         要求:判斷數組元素是否對稱。例如{1}、{1,2,0,2,1},{1,2,3,3,2,1}這樣的都是對稱數組。         該題中用於判斷數組中的元素關於中心對稱,也就是說數組中的第一個元素和最後一個元素相同,數組中的第二個元素和倒數第二個元素相同,依次類推,如果比較到中間,所有的元素都相同,則數組對稱。         實現思路:把數組長度的一半作為迴圈的次數,假設變數i從0迴圈到數組的中心,則對應元素的下標就是數組長度-i-1,如果對應的元素有一組不相等則數組不對稱,如果所有對應元素都相同,則對稱。         則實現的代碼如下:                  int[] n = {1,2,0,2,1};                   boolean flag = true; //假設對稱                   for(int i = 0;i < n.length/2;i++){ //迴圈數組長度的一半次                            //比較元素                            if(n[i] != n[n.length – i – 1]){                                     flag = false;   //不對稱                                     break;       //結束迴圈                            }                   }                  if(flag){                            System.out.println(“對稱”);                   }else{                            System.out.println(“不對稱”);                   }         在該代碼中,flag作為標誌變數,值為true代表對稱,false代表不對稱,因為是兩兩比較,只需要比較數組的長度一半次即可,如果對應的元素不相同則數組不對稱,結束迴圈。最後判斷標誌變數的值,就可以獲得數組是否對稱了。 6.3.6 數制轉換         要求:將十進位數字轉換為位元字。         在前面介紹過,十進位數字轉換為位元字時一般使用除二取餘法,該方法很規則,在程式中可以通過迴圈實現,在程式中只需要把得到的數字儲存起來即可。         實現思路:將除二取餘得到的第一個數字儲存在數組中第一個元素,第二次得到的餘數儲存在數組中第二個元素,依次類推,最後反向輸出獲得的數字即可。         實現代碼如下:                   int n = 35;                   int[] m = new int[32];                   //拆分數字                   int num = 0;                   while(n != 0){                            m[num] = n % 2; //儲存餘數                            num++;           //拆分數字增加1                            n /= 2;          //去掉餘數                   }                   //輸出拆分後的數字                   for(int i = num - 1;i >= 0;i--){                            System.out.print(m[i]);                   }                   System.out.println();         在該代碼中,因為int是32位的,所以最多需要長度是32的數組即可。在儲存時把拆分出的第一個數字,也就是二進位的低位,儲存在數組的第一個元素,num代表拆分出的數位個數以及數組下標,一直拆分到n的值為零時結束。迴圈結束後,因為拆分出來的數字個數是num,所以只需要反向輸出數組中0到num-1下標的元素即可。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.