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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

JAVA数组及数组的应用

發(fā)布時(shí)間:2024/4/30 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA数组及数组的应用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、數(shù)組

  • 一組數(shù)的容器。
  • 數(shù)組對(duì)每一個(gè)存入的數(shù)字都會(huì)自動(dòng)編號(hào),編號(hào)從0開始。——下標(biāo)

二、數(shù)組的定義格式

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

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

    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); } }
    • 選擇排序
      思路:第一位依次和后面的元素進(jìn)行比較交換
      一共比較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(數(shù)組);//只能升序排序,從小到大。
      String s = Arrays.toString(arr); //將數(shù)組中的元素依次拿出來(lái)拼接成一個(gè)字符串。
      快速排序、希爾排序、堆排序。。。

  • 查找數(shù)組中的元素
    針對(duì)無(wú)序數(shù)組,for循環(huán)遍歷
    針對(duì)有序數(shù)組,用折半查找。

    /*** 針對(duì)有序數(shù)組的元素查找* 折半查找* */ 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("在數(shù)組中第"+mid+"位");}else{System.out.println("好像沒有這個(gè)數(shù)!");}}
  • 數(shù)組的反轉(zhuǎn)
    (1)利用新的數(shù)組
    (2)數(shù)組元素首尾交換
    思路:利用兩個(gè)變量同時(shí)控制數(shù)組的兩端,進(jìn)行交換。
  • 數(shù)組的擴(kuò)容(復(fù)制)
    System.arrayCopy(要復(fù)制哪個(gè)數(shù)組,要復(fù)制數(shù)組的起始位置,被復(fù)制到的數(shù)組,新數(shù)組中放置的起始位置,要復(fù)制元素的個(gè)數(shù));
    擴(kuò)/縮容的本質(zhì)還是數(shù)組的復(fù)制
    數(shù)組 = Arrays.copyOf(數(shù)組,長(zhǎng)度);
    表面上看起來(lái)只對(duì)數(shù)組的長(zhǎng)度做了改變,實(shí)際上已經(jīng)不是原來(lái)的數(shù)組了。
    數(shù)據(jù)類型在java底層通過泛型動(dòng)態(tài)獲取。
  • 四、二維數(shù)組

  • 是一組數(shù)組的容器—數(shù)組的數(shù)組
  • 定義格式:數(shù)據(jù)類型[][] 數(shù)組名 = new 數(shù)據(jù)類型[二維數(shù)組的大小][所包含的一維數(shù)組的大小];
    • int[][] name = new int[3][5]
      這是一個(gè)包含3個(gè)一維數(shù)組的二維數(shù)組,每個(gè)一維數(shù)組有5個(gè)元素。
      arr[0][0]—- 獲取具體的元素
    • 數(shù)據(jù)類型[][] name = new 數(shù)據(jù)類型[二維數(shù)組大小][];
      二維數(shù)組中包含的一維數(shù)組可以動(dòng)態(tài)設(shè)置,而不再二維數(shù)組定義時(shí)統(tǒng)一指定。
    • 數(shù)據(jù)類型[][] name = {
      {元素1},
      {元素1,元素2},
      }
  • 面試題:
    1. 對(duì)于數(shù)組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]
    注意:[] 在變量名之前是緊跟數(shù)據(jù)類型的,那么后面跟的每個(gè)變量只少是一個(gè)一維數(shù)組;[]在變量名之后是僅屬于變量的。
  • 遍歷二維數(shù)組 — 需要兩個(gè)循環(huán)
  • 總結(jié)

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

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。