java基礎——數組及其應用


數組

  • 數組時相同類型數據的有序集合

  • 數組描述的時相同類型的若干數據,按照一個定的先后次序排列組合而成

  • 其中,每一個數據成為數組元素,每個數組元素可以通過一個下標來訪問他們

數組的聲明&創建

  • 首先必須聲明數組變量,才能在程序中使用數組。 聲明數組變量的語法:

dataRype[] arrayRefVar; // 首先的方法(java)
或者
dataType arrayRefVar[];// 效果相同,但不是首先方法
  • java語言使用new操作符來創建數組。

dataType[] arrayRefVar = new dataType[arraySize] 
  • 數組的元素是通過索引訪問的,數組索引從0開始。

    • 獲取數組的元素:array.length

    public static void main(String[] args) {
       // 建立數組的基本步驟:
       // 1. 聲明一個數組
       int[] nums;
       // 2. 創建一個數組(開辟空間)
       nums = new int[10];
       // 3. 給數組中的元素賦值
       for (int i = 0; i < nums.length; i++) {
           nums[i] = i+1 ;
      }
       
       for (int x : nums) {
           System.out.println(x);
      }
  }

內存分析

java內存:1 堆,2 棧,3 方法區

  1. 堆:可以存放new的對象和數組。(可以被所有的線程共享,不會存放別的對象引用)

  2. 棧:存放基本變量類型(包含這個基本變量類型的具體數值);引用對象的變量(會存放這個引用在堆里面的具體地址)

  3. 方法區:可以被所有的線程共享,包含了所有的class和static變量

由於數組的邊界時,時確定的,在超出時,會報錯:java.lang.ArrayIndexOutOfBoundsException。

數組的初始化

  1. 靜態初始化:

int[] a ={1,2,3};
Man[] mans ={new Man(1,1),new Man(2,2)}
  1. 動態初始化:

int[] a = new int[2];
a[0]=1;
a[1]=2;
  1. 數組的初始化:

    • 數組時引用類型,它的元素相當於類的實例變量,因此數組一經分配空間,其中的元素同樣被按照實例的變量同樣的方式被隱形初始化。

數組的基本特點

  1. 數組的長度是確定的。數組一旦被創建,他的大小就不可以改變的。

  2. 其元素必須是相同類型,不允許出現混合類型。

  3. 數組中的元素可以是任何數據類型的,包括基本類型和引用類型。

  4. 數組變量屬於引用類型,數組也可以看成對象,數組中的每個元素都相當於該對象的成員變量 數組本身就是對象,java中對象實在堆中的,因此數組無論保存原始類型還是其他對象類型,數組對象本身在堆中的

數組的邊界

  • 下標的合法區間:[0,length-1],如果越界就會報錯。

  • java.lang.ArrayIndexOutOfBoundsException。

數組小結

  • 數組時相同數據類型(任意類型)的有序集合

  • 數組也是對象,數組的元素相當於對象的成員變量

  • 數組的長度是確定的。越界就會報錯。

數組的使用

  • 普通的for循環

  • for-each循環(增強型for循環)

  • 數組作方法入參

  • 數組做返回值

public class ArrayDemo04 {
   public static void main(String[] args) {
       int[] array = {1,2,3,4,5};
       // 增強for循環,適合打印輸出
       for (int x : array) {
           System.out.println(x);
      }
       System.out.println("===========");
       printArray(array);
       System.out.println();
       System.out.println("$$$$$$$$$$$$");
       
       int[] reverse = arrayReverse(array);
       System.out.println("輸入的反轉數組如下:");
       printArray(reverse);
  }
   //打印數組
   public static void printArray (int[] array){
       for (int i = 0; i < array.length; i++) {
           System.out.print(array[i]+"\t");
      }
       System.out.println();
       System.out.println("*****************");
       for (int i = 0; i < array.length; i++) {
           System.out.print(array[i]+" ");
      }
  }
   //反轉數組(返回值為數組)
   public static int[] arrayReverse (int[] array){
       int[] result= new int[array.length];
       for (int i = 0; i < array.length; i++) {
           result[i] = array[array.length-1-i];
      }
       return result;
  }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM