Java【第五篇】基本語法之--數組

數組概述

數組是多個相同類型數據的組合,實現對這些數據的統一管理
數組屬引用類型,數組型數據是對象(Object),數組中的每一個元素至關於該對象的成員變量
數組中的元素能夠是任何數據類型,包括基本類型和引用類型java

一維數組

一維數組的聲明方式

type var[] 或 type[] var;
例如:
  int a[];
  int[] a1;
  double b[];
  Mydate []c; //對象數組
Java語言中聲明數組時不能指定其長度(數組中元素的數), 例如: int a[5]; //非法數組

數組元素的引用

Java中使用關鍵字 new 建立數組對象
定義並用運算符 new 爲之分配空間後,才能夠引用數組中的每一個元素;
數組元素的引用方式:數組名[數組元素下標]
數組元素下標能夠是整型常量或整型表達式。如a[3] , b[i] , c[6*i];
數組元素下標從0開始;長度爲n的數組合法下標取值範圍: 0 - n-1;如int a[]=new int[3]; 可引用的數組元素爲a[0]、a[1]、a[2]
每一個數組都有一個屬性 length 指明它的長度,例如:a.length 指明數組 a 的長度(元素個數)spa

數組元素的默認初始化

數組是引用類型,它的元素至關於類的成員變量,所以數組一經分配空間,其中的每一個元素也被按照成員變量一樣的方式被隱式初始化。例如:指針

public class Test {
    public static void main(String argv[]){
        int a[]= new int[5]; 
        System.out.println(a[3]);	//a[3]的默認值爲0
    }
}     

數組元素的默認初始值

建立基本數據類型數組

Java中使用關鍵字new 建立數組對象對象

public class Test{
           public static void main(String args[]){
      		int[] s;
      		s = new int[10];
      		for ( int i=0; i<10; i++ ) {
            	       s[i] =2*i+1;
	         	System.out.println(s[i]);
      		}
           }
    }

建立對象數組

class MyDate{
        private int day;
        private int month;
        private int year;
        public MyDate(int d, int m, int y){
		day = d;    month = m;    year = y;
        }
        public void display(){
		System.out.println(day + "-" + month + "-" + year);
        }
 }

 

public class Test{
         public static void main(String args[]){
      		MyDate[] m;
      		m = new MyDate[10];
      		for ( int i=0; i<10; i++ ) {
            	    m[i] =new MyDate(i+1, i+1,1990+i);
	           m[i].display();
      	      }
         }
}

數組初始化

動態初始化

數組定義與爲數組元素分配空間並賦值的操做分開進行。blog

int a[];
a = new int[3];
a[0] = 3;
a[1] = 9;
a[2] = 8;排序


MyDate dates[];
dates = new MyDate[3];
dates[0] = new MyDate(22, 7, 1964);
dates[1] = new MyDate(1, 1, 2000);
dates[2] = new MyDate(22, 12, 1964);內存

靜態初始化

在定義數組的同時就爲數組元素分配空間並賦值。io

int a[] = { 3, 9, 8};編譯

MyDate dates[] = {
new MyDate(22, 7, 1964),
new MyDate(1, 1, 2000),
new MyDate(22, 12, 1964)
};

示例

package com.uncleyong;

public class TestArray {
    public static void main(String[] args) {

        //1. 數組的聲明
        //int    i = 0;
        int [] a = null; //推薦使用此種方式進行聲明.
        int b [] = null;

        //注意: Java語言中聲明數組時不能指定其長度(數組中元素的數)
        //int [5] c = null;

        //注意: 若沒有爲數組變量分配指向的內存空間, 就調用其屬性, 會在運行時發生 "空指針異常"
        //System.out.println(a.length);

        //2. 爲數組分配內存空間,new後面必須指定數組長度
        a = new int[10];

        //3. 獲取數組的長度
        System.out.println(a.length);  //10

        //5. 對數組元素進行初始化
        for(int i = 0; i < a.length; i++){
            a[i] = 100 + i;
        }

        //4. 訪問數組的元素: 數組名[數組元素下標]. 注意: 下標從 0 開始, 因此最大值是 lengh - 1, 而不是length;
        //數組元素會進行默認的初始化:
        for(int i = 0; i < a.length; i++){
            System.out.println(a[i]);
        }

        //若訪問數組的下標超過合法範圍, 則在運行時會拋出 ArrayIndexOutOfBoundsException,編譯時不會拋
        //a[10] = 10;

        //數組的靜態初始化
        int [] c = {1, 2, 3, 4, 5};
        int [] d = new int[]{2, 3, 4, 5, 6};

        for(int i = 0; i < d.length; i++){
            System.out.println(d[i]);
        }
    }
}

多維數組

二維數組舉例

int [][] a = {{1,2},{3,4,0,9},{5,6,7}};

Java中多維數組被作爲數組的數組處理

Java中多維數組的聲明和初始化應按從高維到低維的順序進行

int t [][] = new int [4][];//t有4行,第一個維數不空便可
t[0] = new int[5]; //每一行都是一個有5個元素的一維數組
t[1] = new int[5];
int t1[][] = new int [][4]; //非法


Java中多維數組沒必要須是規則矩陣形式
int[][] tt = new int[4][];
tt[0] = new int[2];
tt[1] = new int[4];
tt[2] = new int[6];
tt[3] = new int[8];

int tt[][] = new int[4][5]; //tt是一個4行5列的二維數組

多維數組初始化

靜態初始化

int intArray[][] = {{1,2},{2,3},{3,4,5}};
int intArray1[3][2] = {{1,2},{2,3},{4,5}}; //illegal,等號左邊不能指定維數

動態初始化

int a[][] = new int[4][5];
int b[][] = new int[3][]
b[0] = new int[2];
b[1] = new int[3];
b[2] = new int[5];

示例

package com.uncleyong;

public class TestArray {
    public static void main(String[] args) {
        //聲明一個二維數組
        int [][] aa = new int[5][];

        //對二維數組的元素進行初始化: 二維數組的元素是一個一維數組!
        //遍歷須要使用嵌套的 for 循環.
        for(int i = 0; i < aa.length; i++){
            aa[i] = new int[i + 1];

            // 初始化
            for(int j = 0; j < aa[i].length; j++){
                aa[i][j] = 1 + i * j;
            }
        }

        //對二維數組進行遍歷
        for(int i = 0; i < aa.length; i++){
            for(int j = 0; j < aa[i].length; j++){
                System.out.print(aa[i][j] + "  ");
            }

            System.out.println();
        }

    }
}

數組排序

Java.util.Arrays類的 sort() 方法提供了數組元素排序功能

package com.uncleyong;

import java.util.Arrays;

public class Sort {
    public static void main(String[] args) {
        int [] number = {5,900,1,5,77,30,64,700};
        Arrays.sort(number);

        for(int i = 0; i < number.length; i++)
            System.out.print(number[i] + " ");
    }
}
相關文章
相關標籤/搜索