日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JAVA数组及数组的应用

發布時間:2024/4/30 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA数组及数组的应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、數組

  • 一組數的容器。
  • 數組對每一個存入的數字都會自動編號,編號從0開始?!聵?/li>

二、數組的定義格式

  • Type[] name = new Type[size]
    數組的大小一旦被定義,不可改變。
    在程序中第一次給變量賦值—–變量的初始化。
    直接打印數組,打印出的是數組的地址。
    打印的內容:[ I @ df6d9f8
    [ 表示對象的類型是數組
    I 如果這個對象是一個數組或者集合,那么這意味表示數組或集合中元素的類型
    @ 表后邊是地址
    454f5gf5g 表示對象咋內存中地址對應hash碼的十六進制的表現形式。
  • int[] arr = new int[]{1,2,4,5,6}; — 定義好之后,初始元素已經一一賦值。
  • int arr[] = {1,3,4,5,6,8}; —– 不支持先定義變量,在初始化變量。
    new 用于創建一個新的對象
    int arr[] = {1,2} — 在創建 的時候動態的獲取數組的大小,然后才能分配內存空間
    int arr[]; arr[] = {1,2} 不可行,系統不知道數組的大小。
  • 三、數組的應用

  • 獲取數組中的元素 — 數組名[下標]
  • 獲取數組中的長度 — 數組名.length length是一個屬性,不是一個方法!
  • 遍歷數組 — 獲取數組中所有的元素—for、增強for
    注意:增強for不能改變原來數組中的元素。
    對于基本類型而言,傳值傳的實際的數據,;對于引用類型數據傳值傳的是地址。
  • 獲取數組中最大|小值
  • 對數組進行排序
    * 冒泡排序:
    思路:相鄰兩個數兩兩比較,交換位置。
    一共比較length-1輪
    第i輪比較j次,i+j=length
    j還要控制每次開始比較的下標

    public static void main(String[] args) { int arr[]={1,5,8,6,4,3,2}; for(int i = 1;i<arr.length;i++){for(int j = 0;j<(arr.length-i);j++){if(arr[j]>arr[j+1]){int temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}} } for(int i : arr){System.out.println(i); } }
    • 選擇排序
      思路:第一位依次和后面的元素進行比較交換
      一共比較length-1輪
      第i輪比較j次,i+j=length

      public static void main(String[] args) { int arr[]={1,5,8,6,4,3,2}; for(int i=0;i<arr.length;i++){for( int j= i;j<arr.length;j++){if(arr[i]>arr[j]){int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}} } for(int i : arr){System.out.println(i); } }

      java.util.Arrays
      Arrays.sort(數組);//只能升序排序,從小到大。
      String s = Arrays.toString(arr); //將數組中的元素依次拿出來拼接成一個字符串。
      快速排序、希爾排序、堆排序。。。

  • 查找數組中的元素
    針對無序數組,for循環遍歷
    針對有序數組,用折半查找。

    /*** 針對有序數組的元素查找* 折半查找* */ public class Demo_23 {public static void main(String[] args) {int arr[]={0,1,2,3,4,5,6,7,8,9};int num = 5;int min = 0;int max = arr.length-1;int mid = (min+max)/2;boolean flag = false;while(min<=max){if(num == arr[mid]){flag = true;break;}if(arr[mid]>num){max = mid-1;}else{min = mid+1;}mid = (min + max)/2;}if(flag){System.out.println("在數組中第"+mid+"位");}else{System.out.println("好像沒有這個數!");}}
  • 數組的反轉
    (1)利用新的數組
    (2)數組元素首尾交換
    思路:利用兩個變量同時控制數組的兩端,進行交換。
  • 數組的擴容(復制)
    System.arrayCopy(要復制哪個數組,要復制數組的起始位置,被復制到的數組,新數組中放置的起始位置,要復制元素的個數);
    擴/縮容的本質還是數組的復制
    數組 = Arrays.copyOf(數組,長度);
    表面上看起來只對數組的長度做了改變,實際上已經不是原來的數組了。
    數據類型在java底層通過泛型動態獲取。
  • 四、二維數組

  • 是一組數組的容器—數組的數組
  • 定義格式:數據類型[][] 數組名 = new 數據類型[二維數組的大小][所包含的一維數組的大小];
    • int[][] name = new int[3][5]
      這是一個包含3個一維數組的二維數組,每個一維數組有5個元素。
      arr[0][0]—- 獲取具體的元素
    • 數據類型[][] name = new 數據類型[二維數組大小][];
      二維數組中包含的一維數組可以動態設置,而不再二維數組定義時統一指定。
    • 數據類型[][] name = {
      {元素1},
      {元素1,元素2},
      }
  • 面試題:
    1. 對于數組int[] x, y[]均以初始化,下列正確的是:B,C
    A y = x; B y[0] = x; C y[0][0] = x[0]; D y[0] = x[0] E y = x[0]
    注意:[] 在變量名之前是緊跟數據類型的,那么后面跟的每個變量只少是一個一維數組;[]在變量名之后是僅屬于變量的。
  • 遍歷二維數組 — 需要兩個循環
  • 總結

    以上是生活随笔為你收集整理的JAVA数组及数组的应用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。