Java入門之~數組

      網友投稿 787 2022-05-29

      1.數組

      1.1什么是數組【理解】

      數組就是存儲數據長度固定的容器,存儲多個數據的數據類型要一致。

      Java入門之~數組

      1.2數組定義格式【記憶】

      數據類型[] 數組名

      示例:

      int[] arr; double[] arr; char[] arr;

      數據類型 數組名[]

      示例:

      int arr[]; double arr[]; char arr[];

      1.3數組動態初始化【應用】

      數組動態初始化就是只給定數組的長度,由系統給出默認初始化值。

      數據類型[] 數組名 = new 數據類型[數組長度];

      int[] arr = new int[3];

      等號左邊:

      int:數組的數據類型

      []:代表這是一個數組

      arr:代表數組的名稱

      等號右邊:

      new:為數組開辟內存空間

      int:數組的數據類型

      []:代表這是一個數組

      5:代表數組的長度

      1.4數組元素訪問【應用】

      每一個存儲到數組的元素,都會自動的擁有一個編號,從0開始。

      這個自動編號稱為數組索引(index),可以通過數組的索引訪問到數組中的元素。

      數組名[索引];

      public class ArrayDemo { public static void main(String[] args) { int[] arr = new int[3]; //輸出數組名 System.out.println(arr); //[I@880ec60 //輸出數組中的元素 System.out.println(arr[0]); System.out.println(arr[1]); System.out.println(arr[2]); } }

      1.5內存分配【理解】

      內存是計算機中的重要原件,臨時存儲區域,作用是運行程序。

      我們編寫的程序是存放在硬盤中的,在硬盤中的程序是不會運行的。

      必須放進內存中才能運行,運行完畢后會清空內存。

      Java虛擬機要運行程序,必須要對內存進行空間的分配和管理。

      目前我們只需要記住兩個內存,分別是:棧內存和堆內存

      1.6單個數組的內存圖【理解】

      1.7多個數組的內存圖【理解】

      1.8多個數組指向相同內存圖【理解】

      1.9數組靜態初始化【應用】

      在創建數組時,直接將元素確定

      完整版格式

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

      簡化版格式

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

      public class ArrayDemo { public static void main(String[] args) { //定義數組 int[] arr = {1, 2, 3}; //輸出數組名 System.out.println(arr); //輸出數組中的元素 System.out.println(arr[0]); System.out.println(arr[1]); System.out.println(arr[2]); }}

      1.10數組操作的兩個常見小問題【應用】

      出現原因

      public class ArrayDemo { public static void main(String[] args) { int[] arr = new int[3]; System.out.println(arr[3]); }}

      數組長度為3,索引范圍是0~2,但是我們卻訪問了一個3的索引。

      程序運行后,將會拋出ArrayIndexOutOfBoundsException 數組越界異常。在開發中,數組的越界異常是不能出現的,一旦出現了,就必須要修改我們編寫的代碼。

      解決方案

      將錯誤的索引修改為正確的索引范圍即可!

      出現原因

      public class ArrayDemo { public static void main(String[] args) { int[] arr = new int[3]; //把null賦值給數組 arr = null; System.out.println(arr[0]); }}

      arr = null 這行代碼,意味著變量arr將不會再保存數組的內存地址,也就不允許再操作數組了,因此運行的時候會拋出 NullPointerException 空指針異常。在開發中,數組的越界異常是不能出現的,一旦出現了,就必須要修改我們編寫的代碼。

      解決方案

      給數組一個真正的堆內存空間引用即可!

      1.11數組遍歷【應用】

      數組遍歷:就是將數組中的每個元素分別獲取出來,就是遍歷。遍歷也是數組操作中的基石。

      public class ArrayTest01 { public static void main(String[] args) { int[] arr = { 1, 2, 3, 4, 5 }; System.out.println(arr[0]); System.out.println(arr[1]); System.out.println(arr[2]); System.out.println(arr[3]); System.out.println(arr[4]); }}

      以上代碼是可以將數組中每個元素全部遍歷出來,但是如果數組元素非常多,這種寫法肯定不行,因此我們需要改造成循環的寫法。數組的索引是 0 到 lenght-1 ,可以作為循環的條件出現。

      public class ArrayTest01 { public static void main(String[] args) { //定義數組 int[] arr = {11, 22, 33, 44, 55}; //使用通用的遍歷格式 for(int x = 0; x < arr.length; x++) { System.out.println(arr[x]); } }}

      1.12數組最值【應用】

      最大值獲取:從數組的所有元素中找出最大值。

      實現思路:

      定義變量,保存數組0索引上的元素

      遍歷數組,獲取出數組中的每個元素

      將遍歷到的元素和保存數組0索引上值的變量進行比較

      如果數組元素的值大于了變量的值,變量記錄住新的值

      數組循環遍歷結束,變量保存的就是數組中的最大值

      代碼實現:

      public class ArrayTest02 { public static void main(String[] args) { //定義數組 int[] arr = {12, 45, 98, 73, 60}; //定義一個變量,用于保存最大值 //取數組中第一個數據作為變量的初始值 int max = arr[0]; //與數組中剩余的數據逐個比對,每次比對將最大值保存到變量中 for(int x=1; x max) { max = arr[x]; } } //循環結束后打印變量的值 System.out.println("max:" + max); }}

      Java 數據結構

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

      上一篇:七夕趕上服務器架構升級,女朋友的約會怎么辦
      下一篇:ClickHouse運維監控總結
      相關文章
      亚洲自偷自拍另类12p| 国产精品亚洲а∨无码播放| 亚洲AV综合色区无码另类小说| 亚洲国产精品嫩草影院久久 | 中文亚洲AV片不卡在线观看| 亚洲Av无码乱码在线观看性色 | 亚洲国产精品无码专区影院| 久久精品国产亚洲麻豆| 国产AV无码专区亚洲Av| 亚洲高清专区日韩精品| 久久精品亚洲日本佐佐木明希| 亚洲妇熟XXXX妇色黄| 亚洲AV无码专区电影在线观看| 亚洲国产精品一区第二页| 婷婷精品国产亚洲AV麻豆不片 | 亚洲欧洲精品成人久久曰| 亚洲精品无码专区久久| 亚洲第一成年免费网站| 色天使亚洲综合一区二区| 久久亚洲色WWW成人欧美| 亚洲XX00视频| 亚洲日韩欧洲乱码AV夜夜摸| 亚洲精品成人片在线播放 | 亚洲精品无码一区二区| 亚洲国产精品无码观看久久| 亚洲日韩在线中文字幕综合 | 亚洲精品在线免费看| 亚洲乱码卡一卡二卡三| 亚洲熟女综合色一区二区三区| 亚洲精品成a人在线观看☆| 国产精品亚洲lv粉色| 国产精品亚洲产品一区二区三区 | 亚洲an日韩专区在线| 亚洲熟女精品中文字幕| 亚洲成a人一区二区三区| 国产亚洲人成A在线V网站| 亚洲AV无码久久精品色欲| 亚洲福利电影在线观看| 在线观看日本亚洲一区| 亚洲国产91精品无码专区| 亚洲乳大丰满中文字幕|