2024-04-09

一、數組的概念

數組概念: 數組就是用于存儲數據的長度固定的容器,保證多個數據的數據類型要一致。

? ? ? ? ? ? ? ? ? ?按照維度區分:一維數組:存儲一組數據。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 二維數組:存儲多組數據。

? ? ? ? ? ? ? ? ? ? 按照元素類型區分:基本數據類型的元素:存儲數據值

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?引用數據類型的元素:存儲對象(本質上存儲對象的首地址)

數組的定義:元素的數據類型[ ]? 數組名(推薦使用)

? ? ? ? ? ? ? ? ? ? ? 元素的數據類型 數組名[ ]

? ? ? ? ? ? ? ? ? ? ? 一個數組要包含數組的維度、數組的元素類型、數組名。

? ? ? ? ????????????????//比如,要存儲一個小組的成績

? ? ? ? ? ? ? ? ? ? ? ? //int[ ] scores;;

數組的初始化:靜態初始化有三種:1.數據類型[] 數組名 = {元素1,元素2,元素3...};

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????? ?//int[ ] arr = {1,2,3,4,5};

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2. 數據類型[] 數組名 = new 數據類型[]{元素1,元素2.};

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????? //int[] arr = new int[]{1,2,3,4,5};

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?3. 數據類型[] 數組名;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?數組名 = new 數據類型[]{元素1,元素2,元素3...};

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????? //int[] arr;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????? arr = new int[]{1,2,3,4,5};

? ? ? ? ? ? ? ? ? ? ? ? ?動態初始化有一種:

? ? ? ? ? ? ? ? ? ? ? ? ? ? 數組存儲的元素的數據類型[] 數組名 = new 數組存儲的元素的數據類型[長度];

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????? //int[] arr = new int[5];

數組的使用:數組在使用時一般是對數組進行遍歷,在遍歷時要注意幾點:

? ? ? ? ? ? ? ? ? ? ? ? ? ? 1.數組的長度屬性

? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.數組下標越界異常

? ? ? ? ? ? ? ? ? ? ? ? ? ? 3.數組的下標是從0開始,到length-1結束。

? ? ? ? ? ? ? ? ? ? ????????4.由于數組是引用數據類型,記錄了數組的地址,當把一個數組賦值給另一個數組時,兩個數組此時指向同一個地址,因此兩個數組相等。

二、數組的常見算法

第一類:求總和、求總乘積等

? ? ? ? 一般思想是通過定義一個變量,在遍歷數組的過程中將數組中的每個元素累加到此變量上,在遍歷完成后打印輸出結果。

//? ? ? ? ? ? ? ? ? int[] arr = {4,5,6,1,9};

? ? ? ? ????????????//求總和、均值

? ? ? ? ????????????int sum = 0;//因為0加上任何數都不影響結果

? ? ? ? ????????????for(int i=0; i<arr.length; i++){

? ? ? ? ? ????????????????? sum += arr[i];

? ? ? ????????????? }

????????????????????System.out.println("sum = " + sum);

第二類:統計數組內特殊數值的個數(包括最大最小值)

? ? ? ? 一般思想為定義一個初始值為0的記錄變量,在遍歷數組時通過一個if判斷語句去判斷此數值時候符合特殊條件,若符合則讓記錄變量自增,遍歷結束打印。

? ? ? ? 若為求最大最小值,則定義一個變量取數組首項假設為最大最小值,將if語句條件改變為對比條件即可,當符合時使用記錄變量記錄此項下標,遍歷結束打印。

????????//? ? ? ? ? ? ? ? ? ? ? int[] arr = {4,5,6,1,9};

? ? ? ? ????????????????????????????//統計偶數個數

? ? ? ? ????????????????????????int evenCount = 0;

? ? ? ????????????????????????? for(int i=0; i<arr.length; i++){

? ? ? ? ? ?????????????????????????????if(arr[i]%2==0){

? ? ? ? ? ? ?????????????????????????????????evenCount++;

? ? ? ? ? ? ????????????????????????????}????

? ? ? ????????????????????????? }

? ? ? ? ????????????????????????System.out.println("evenCount = " + evenCount);


? ? ? ?//? ? ? ? ? ? ? ? ? ? ? ?int[] arr = {4,5,6,1,9};

? ? ? ????????????????????????????? //找最大值

? ? ????????????????????????? ? int max = arr[0];

? ? ? ????????????????????????? for(int i=1; i<arr.length; i++){

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?if(arr[i] > max){

? ? ? ? ? ? ? ????????????????????????????????????? max = arr[i];

? ? ? ? ? ????????????????????????????????? }

? ? ? ? ????????????????????????????}

? ? ? ? ????????????????????????????System.out.println("max = " + max);

第三類:數組的元素查找

? ? ? ? 一般思想為對數組進行遍歷,依次對比所需值是否匹配,不同算法時間復雜度和空間復雜度不同。

? ? 1.順序查找

? ? ? ? 一般思想為從下標0開始挨個對比,對數組元素順序無要求。

? ? 2.折半查找

? ? ? ? 一般思想為每次對比數組下標為中間值的元素,若此時中間值大于所需值則去往數組左半部分查找,若中間值小于所需值則往數組右半部分查找,對數組元素要求有序排列。

第四類:數組的元素排序

? ? ? ? 一般思想為進行n輪循環,n與數組長度有關,每次循環確定一個元素的最終位置。

? ? ? ? 1.選擇排序

? ? ? ? ? ? 選擇排序思想為兩層for循環嵌套,第一層for控制總循環次數,本質是每次循環需要確定一個元素的最終位置,第二層for是為了選擇出本次需要確定最終位置的元素,若確定的元素此時不在最終應當在的位置,則將此元素交換至最終位置。

? ? ? ? 2.冒泡排序

? ? ? ? ? ? 冒泡排序思想為每次比較相鄰的兩個元素,若位置不對則交換,每一趟可以將一個元素確定到數組的邊緣位置,類似于一個一個泡泡往前冒,若某一趟未發生一次交換,則說明數組內元素已經有序。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,321評論 6 543
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,559評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,442評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,835評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,581評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,922評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,931評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,096評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,639評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,374評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,591評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,104評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,789評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,196評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,524評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,322評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,554評論 2 379

推薦閱讀更多精彩內容

  • 一、Random 產生整數隨機數 Random的使用步驟我們想產生1~100(包含1和100)的隨機數該怎么辦呢?...
    遼A丶孫悟空閱讀 1,496評論 9 42
  • day04【 Idea、數組】 今日內容 集成開發工具IDEA 數組及內存圖 數組的常見問題 數組的練習 教學目標...
    小崔同志_d2bb閱讀 199評論 0 0
  • 學習目標 理解容器的概念 掌握一維的聲明和初始化 使用索引訪問數組的元素 掌握數組的遍歷 了解數組的內存圖解 熟悉...
    bjfStart閱讀 264評論 0 0
  • 數組顧名思義就是一堆數據組成的 把具有相同數據類型的若干變量按有序的形式組織起來,以便于程序處理,這些數據元素的集...
    Ending_cy閱讀 619評論 0 0
  • 一、重要性 1. 鞏固學習成果:技巧類教學作業是鞏固學生在課堂上學到的體育技巧和知識的重要途徑。在學習階段,學生可...
    高才才閱讀 57評論 0 0