【藍橋杯Java_C組·從零開始卷】第四節、一維數組與二維數組

      網友投稿 671 2025-04-04

      整篇文章為對java數組的完整理解以及部分排序,并有一些簡單的demo,經典的案例與藍橋杯的一些經典數組題有專門的文章梳理。

      目錄

      數組概述

      什么是數組

      數組的結構

      數組的特點:

      數組分類

      一維數組聲明與賦值

      【藍橋杯Java_C組·從零開始卷】第四節、一維數組與二維數組

      數組的常用屬性與方法

      數組的遍歷

      一維數組demo案例

      數組隨機賦值

      選擇排序

      冒泡排序

      增強for循環

      二維數組聲明

      二維數組練習題:

      交叉數組

      交叉數組遍歷

      總結:

      數組概述

      什么是數組

      單個變量能存儲信息。

      如果有批量數據需要存儲,單個變量存儲時間和空間上不經濟和實用,而且過于麻煩,這時候需要用數組這一引用數據類型來存儲。

      數組: 用來存儲具有相同數據類型的數據的集合,可以使用共同的名字來引用數組中存儲的數據。

      特點: 數組可以存儲任何類型的數據,包括原始數據類型和引用數據類型,但是一旦指定了數組的類型之后,就只能用來存儲指定類型的數據。

      數組的結構

      數組是一個變量,用于將相同數據類型的數據存儲在內存空間中,數組中的所有元素必須屬于相同的數據類型。

      棧(stack)與堆(heap)都是Java用來在Ram(隨機存取存儲器)中存放數據的地方。

      與C++不同,Java自動管理棧和堆,程序員不能直接地設置?;蚨?。

      棧的優勢是,存取速度比堆要快,僅次于直接位于CPU中的寄存器。但缺點是,存在棧中的數據大小與生存期必須是確定的,缺乏靈活性。另外,棧數據在多個線程或者多個棧之間是不可以共享的,但是在棧內部多個值相等的變量是可以指向一個地址的,堆的優勢是可以動態地分配內存大小,生存期也不必事先告訴編譯器,Java的垃圾收集器會自動收走這些不再使用的數據。但缺點是,由于要在運行時動態分配內存,存取速度較慢。

      數組為了在內存中能夠存取多個數據更加方便,在設計數組時,數組的結構和基本要素都與生活中的電子儲物柜非常類似。

      數組的特點:

      同一個數組中的數組元素必須具有相同的數據類型,且在內存中連續分布。

      無論數組中包含多少個數組元素,該數組只存在一個名稱,即數組名。

      數組元素的編號稱為下標,數組的下標從0 開始 可以通過“數組名[ 下標]”的方式訪問數組中的任何元素。

      數組的長度指數組可以存儲元素的最大個數,在創建數組時確定。

      數組分類

      Java語言中,存在多種形式的數組。

      一維數組聲明與賦值

      int [] array;//整數數組

      int array[]= new int[10];

      int[] array= new int[10];

      數組的常用屬性與方法

      int[] array= new int[10];

      //數組的長度

      array.length;

      //自然排序

      Arrays.sort(array)

      數組的遍歷

      int [] a=new int[10];

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

      a[i]=i+1;

      }

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

      System.out.print(a[i]+",");

      }

      一維數組demo案例

      問題描述:輸入本部門5位員工的薪資,并根據用戶輸入的序號為指定員工進行提薪。若用戶輸入序號出現越界,則提示錯誤。要求:薪資的漲幅不能超過原薪資的20%,若漲幅超過20%,則按照原薪資的20%進行提薪。

      數組隨機賦值

      package Action;

      import java.util.Random;

      public class demos {

      public static void main(String[] args) {

      // 聲明隨機數

      Random ra = new Random();

      int[] arrays = new int[10];

      // 賦值

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

      arrays[i] = ra.nextInt(50);

      }

      // 遍歷

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

      System.out.print(arrays[i] + ",");

      }

      }

      }

      算法中經常會用到某個班級、某個公司、某個集體中隨機選某些人,或者棋牌類游戲進行棋牌的分發,彩票的出獎,紅包隨機分發匹配人員等操作。 所以,我們需要使用一定的算法進行獲取一定數量的不重復的隨機數數組。

      選擇排序

      package Action;

      public class demos {

      public static void main(String[] args) {

      int count = 0;

      int[] arr = { 9, 12, 31, 123, 54, 3, 24, 324, 2345, 342 };

      for (int i = 0; i < arr.length; i++) {// 前者循環次數

      for (int j = 0; j < arr.length; j++) {// 后者循環次數

      if (arr[i] > arr[j]) {// 如果i>j就是ture,【1】>【2】

      int change = arr[i];// 賦值給change,告訴change,i多大

      arr[i] = arr[j];// arr[i]賦值給arr[i],換位置

      arr[j] = change;// arr[j]賦值給change,進行下一輪比較

      }

      count++;

      }

      }

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

      System.out.print(arr[j2] + ",");

      }

      System.out.println("\n循環次數:" + count);// 100次循環

      }

      }

      冒泡排序

      package Action;

      public class demos {

      public static void main(String[] args) {

      int count = 0;

      int[] arr = { 9, 12, 31, 123, 54, 3, 24, 324, 2345, 342 };

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

      for (int j = 0; j < arr.length - 1 - i; j++) {// 循環次數遞減

      if (arr[j] < arr[j + 1]) {// 從大到小排列

      int change = arr[j];

      arr[j] = arr[j + 1];

      arr[j + 1] = change;// 值交換

      }

      count++;

      }

      }

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

      System.out.print(arr[j2] + ",");

      }

      System.out.println("\n循環次數:" + count);// 45次循環

      }

      }

      增強for循環

      int nums[] = {1,2,3,4,5,6};

      for(int num : nums) {

      System.out.println(num);

      }

      二維數組聲明

      二維數組的創建同樣有兩種方式

      方式一:

      使用new 類型[][]數組名= new 類型[行數][列數];

      String [][]str = new String[5][5];

      方式二:

      聲明數組并且賦初始值

      int [][] array = {{23,45,45},{12,11,10},{23,12,56}};

      二維數組練習題:

      計算二維整數數組兩條對角線的值的總和。

      int[][] x1 = {

      { 1, 2, 3, 4, 5, 6, 7, 8, 9 },

      { 1, 2, 3, 4, 5, 6, 7, 8, 9 },

      { 1, 2, 3, 4, 5, 6, 7, 8, 9 },

      { 1, 2, 3, 4, 5, 6, 7, 8, 9 },

      { 1, 2, 3, 4, 5, 6, 7, 8, 9 },

      { 1, 2, 3, 4, 5, 6, 7, 8, 9 },

      { 1, 2, 3, 4, 5, 6, 7, 8, 9 },

      { 1, 2, 3, 4, 5, 6, 7, 8, 9 },

      { 1, 2, 3, 4, 5, 6, 7, 8, 9 },

      };

      交叉數組

      int[][] arrays = {

      { 1, 2, 3, 4, 5, 6, 7, 8, 9 },

      { 1, 2, 3, 4, 5, 6},

      { 1, 2, 3, 4, 5, 6, 7 },

      { 1, 2, 3, 4, 5, 6},

      { 1, 2, 3, 4 },

      { 1, 2, 3, 4, 5 },

      { 1, 2},

      { 1, 2, 3, 4, 5, 6, 7, 8 },

      { 1 },

      };

      交叉數組遍歷

      //交叉數組遍歷

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

      for (int j = 0; j < arrays[i].length; j++) {

      System.out.print(arrays[i][j]+",");

      }

      System.out.println();

      }

      總結:

      數組:一組數據

      數組能存儲所有數據類型的數據

      同一個數組的所有數據必須是同一類型

      數組的長度固定,不能改變

      數組有一個屬性:length

      數組對象.length;

      數組的長度

      分類:一維數組和多維數組

      數組的使用

      第一步:聲明數組變量

      數據類型 [] 數組變量名;如:int [] a;

      第二步:創建數組對象

      new 數據類型[所要創建的數組的長度];

      如:new int[5];

      第三步:給數組元素賦值

      數組變量名[下標]=1;

      如:int[] a=new int[5]; ?? ??? ?a[0]=1;

      第四步:訪問數組的元素

      int max=a[0];?? ?//數組元素的使用,作為數據,給其他變量賦值

      System.out.println(a[0]);//把數組元素保存的數據打印輸出

      Java 數據結構

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:wps表格數據透視圖怎么做(wps表格如何數據透視)
      下一篇:Excel如何為文字注釋拼音做一份有拼音的兒歌打印出來給到小朋友(excel怎么給文字添加拼音)
      相關文章
      亚洲午夜精品一级在线播放放| 亚洲成AV人在线观看网址| 亚洲乱码精品久久久久..| 亚洲精品高清一二区久久| 色五月五月丁香亚洲综合网| 亚洲人成电影网站免费| 亚洲高清中文字幕免费| 亚洲一区二区三区不卡在线播放| 亚洲精品欧洲精品| 亚洲美女色在线欧洲美女| 亚洲高清日韩精品第一区 | 久久丫精品国产亚洲av不卡| 久久久久亚洲AV片无码| 亚洲a在线视频视频| 亚洲精品私拍国产福利在线| 亚洲国产精品久久久久久| 久久亚洲国产成人精品性色| 亚洲精品视频免费看| 亚洲国产精品成人综合色在线婷婷| 亚洲大尺码专区影院| 亚洲精品中文字幕无乱码麻豆| 亚洲AV无码乱码在线观看代蜜桃| 亚洲一卡2卡4卡5卡6卡在线99 | 亚洲精品99久久久久中文字幕| 亚洲AV人人澡人人爽人人夜夜| 亚洲国产最大av| 亚洲国产精品人久久电影| 亚洲神级电影国语版| 亚洲伊人久久大香线蕉在观| 亚洲色欲色欲www| 亚洲乱色熟女一区二区三区蜜臀| 亚洲国产精品自在自线观看| 精品久久久久亚洲| 亚洲一区精品伊人久久伊人| 亚洲午夜未满十八勿入网站2| 亚洲av综合色区| 自怕偷自怕亚洲精品| 亚洲精品伊人久久久久| 色偷偷噜噜噜亚洲男人| 亚洲人妻av伦理| 久久久久久久尹人综合网亚洲|