標籤:取數 效果 遍曆 class -- 基本資料 情況 exti 字串類
Java 基本文法---Java數組0. 概述
數組:相同類型的資料 按照順序 組成的一種 引用資料類型 。
資料類型:基礎資料型別 (Elementary Data Type) + 引用資料類型;
引用資料類型:類 + 介面 + 數組 ;
一維數組:聲明,建立,初始化,元素的引用,長度
1. 數組聲明
變數聲明的文法格式: 變數類型 變數名;
數組聲明的文法格式:資料類型 [ ] 數組名;(資料類型 數組名[ ])
int[] myIntArray; //首選方法(int myIntArray[];) //來源於C/C++,效果相同,但不是首選方法String[] strArray;
2. 數組建立
文法格式一 先聲明後建立
資料類型[] 數組名;
數組名 = new 資料類型[ 數組長度 ];
int[] array;array = new int[10];//建立一個長度為 10 的整型數組array;
文法格式二 聲明的同時進行建立數組
資料類型 [] 數組名 = new 資料類型 [ 數組長度 ];dataType[] arrayRefVar = new dataType[arraySize];// 1.使用 dataType[arraySize] 建立了一個數組;// 2.把新建立的數組的引用賦值給了變數 arrayRefVar。
int[] arr = new int[10]; //建立一個長度為10的整型數組arr//注意:數組的長度必須給定
3. 數組的初始化
聲明數組的同時給數組賦值,叫做數組的初始化;
int[] arr = {1,2,3,4,5,6,7,8,9,10};// 數組的長度就是初始化數組時所給數組元素的個數。
4. 數組元素的引用
數組元素的訪問是通過索引訪問的。
文法格式: 數組名[ 下標 ];
注意:下標從0開始(數組索引從0開始,所以索引值從0到array.length - 1);
5. 數組的長度
int[] arr = {0,1,2,3,4,5,6,7,8,9};//屬性 length 表示數組的長度,例如:arr.length;
6. 案例6.1 案例1:一維數組的應用
int 數組建立時數組元素預設值為0;
double數組建立時數組元素預設為0.0;
char 數組建立時數組元素預設為 ;
String 數組建立時數組元素預設為 null;
public class ArrayTest { public static void main(String[] args) { //聲明一個整型數組 int[] intArray; //聲明一個字串類型的數組 String strArray[]; //建立數組 intArray = new int[5]; strArray = new String[10]; //聲明數組的同時進行建立數組 double[] doubleArray = new double[4]; //初始化數組 char[] chArray = {'a','b','c','d'}; char[] ch1Array = new char[5]; System.out.println("ch1Array 數組的長度為:" + ch1Array.length); System.out.println("ch1Array 數組中的第2個元素為:" + ch1Array[3]); System.out.println("chArray 數組的長度為:" + chArray.length); System.out.println("chArray 數組中的第2個元素為:" + chArray[1]); System.out.println("intArray 數組的長度為:" + intArray.length); System.out.println("intArray 數組中的第二個元素為:" + intArray[1]); System.out.println("strArray 數組的長度為:" + strArray.length); System.out.println("strArray 數組中的第5個元素為:" + strArray[4]); System.out.println("doubleArray 數組的長度為:" + doubleArray.length); System.out.println("doubleArray 數組中的第4個元素為:" + doubleArray[3]); System.out.println(); //迴圈為整型數組賦值 for(int i = 0;i < 5;i++) { intArray[i] = i + 2; } //迴圈輸出整型數組中的元素 System.out.println("整型數組intArray 中的元素值分別為:"); //數組下標越界(數組下標超出範圍)Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 // at com.ryanjie.ArrayTest.main(ArrayTest.java:51)// for(int i= 0;i < 6;i++)// {// System.out.print(intArray[i] + " ");// }// System.out.println(); for(int i = 0;i < 5;i++) { System.out.print(intArray[i] + " "); } System.out.println(); } }Output: ch1Array 數組的長度為:5 ch1Array 數組中的第2個元素為: chArray 數組的長度為:4 chArray 數組中的第2個元素為:b intArray 數組的長度為:5 intArray 數組中的第二個元素為:0 strArray 數組的長度為:10 strArray 數組中的第5個元素為:null doubleArray 數組的長度為:4 doubleArray 數組中的第4個元素為:0.0 整型數組intArray 中的元素值分別為: 2 3 4 5 6
6.2 案例2:求數組元素的累加和
public class ArraysSum { public static void main(String[] args) { //求整型數組的累加和 //定義整型數組 int[] intArray = new int[5]; //從鍵盤開始接收資料,為元素進行賦值 Scanner sc = new Scanner(System.in); for(int i = 0;i < intArray.length;i++) { System.out.println("請輸入第 " + (i + 1) + "個元素的值:"); intArray[i] = sc.nextInt(); } //輸出intArray 數組中的元素 System.out.println("數組中的元素分別為:"); for(int i = 0;i < intArray.length; i++ ) { System.out.print(intArray[i] + " "); } System.out.println(); //輸出intArray數組中的元素的和 int sum = 0; for(int i= 0; i < intArray.length;i++) { sum += intArray[i]; } System.out.println("intArray數組的元素和為:" + sum); }}Output: 請輸入第 1個元素的值: 100 請輸入第 2個元素的值: 100 請輸入第 3個元素的值: 50 請輸入第 4個元素的值: 50 請輸入第 5個元素的值: 150 數組中的元素分別為: 100 100 50 50 150 intArray數組的元素和為:450
6.3 案例3:求數組元素的最大值
public class MaxElement { public static void main(String[] args) { //求數組中的最大值 //定義整型數組 //int[] intArray = {34,23,78,56,31,66}; int[] intArray = new int[6]; //從鍵盤讀取數組元素值 Scanner sc = new Scanner(System.in); for(int i = 0;i < intArray.length;i++ ) { System.out.println("請輸入第 " + (i+1) + "個元素的值:"); intArray[i] = sc.nextInt(); } //輸出intArray數組中的元素 System.out.println("intArray 數組中的元素分別為:"); for(int i = 0;i < intArray.length;i++) { System.out.print(intArray[i] + " "); } System.out.println(); int max = intArray[0]; for(int i = 1;i < intArray.length;i++) { if(max < intArray[i]) { max = intArray[i]; } } System.out.println("intArray 數組元素的最大值為:" + max); }}Output: 請輸入第 1個元素的值: 34 請輸入第 2個元素的值: 23 請輸入第 3個元素的值: 78 請輸入第 4個元素的值: 56 請輸入第 5個元素的值: 31 請輸入第 6個元素的值: 66 intArray 數組中的元素分別為: 34 23 78 56 31 66 intArray 數組元素的最大值為:78
7. foreach 迴圈
foreach 迴圈又稱為增強型迴圈,它能在不使用下標的情況下遍曆數組。
int[] arr = {1,2,3,4,5,6};for(int n:arr) System.out.print(n + " ");//每次把數組中的元素存放到n中,輸出。迴圈遍曆一遍就終止;
public class Test { public static void main(String[] args) { //定義整型數組 //int[] intArray = {34,23,78,56,31,66}; int[] intArray = new int[6]; //從鍵盤讀取數組元素值 Scanner sc = new Scanner(System.in); for(int i = 0;i < intArray.length;i++ ) { System.out.println("請輸入第 " + (i+1) + "個元素的值:"); intArray[i] = sc.nextInt(); } //foreach迴圈 for(int n:intArray) { System.out.print(n + " "); } System.out.println(); }}
8. 數組作為函數的參數
數組作為參數傳遞給方法。
調用printfDoubleArray方法列印doubleArray數組:
public static void printfDoubleArray(double[] doubleArray) { for (double element: doubleArray ) { System.out.println(doubleArray[i] + " "); }}//調用printfDoubleArray方法列印doubleArray數組printfDoubleArray(new double[] {3.14,6.66,8,88,3.59,7.84});
9. 數組作為函數的傳回值
數組可以作為函數的傳回值。
將list數組中的元素值賦值給result數組:
public atstic int[] reverse(int[] list){ //聲明 result 數組 並建立 result 數組 int[] result = new int[list.length]; for (int i = 0, j = result.length - 1; i < list.length; i++, j--) { result[j] = list[i]; } return result;}
10. 冒泡排序 BubbleSort
public class BubbleSort { public static void main(String[] args) { //冒泡排序BubbleSort int[] intArray = {34,23,78,56,31,66}; System.out.println("排序前的數組元素分別為:"); for(int element:intArray) { System.out.print(element + " "); } System.out.println(); //BubbleSort int temp; for (int i = 0; i < intArray.length; i++) { for (int j = 0; j < intArray.length-i-1; j++) { if(intArray[j] > intArray[j+1]) { temp = intArray[j]; intArray[j] = intArray[j+1]; intArray[j+1] = temp; } } } //輸出排序後的數組 System.out.println("排序後的數組元素分別為:"); for(int element:intArray) { System.out.print(element + " "); } System.out.println(); }}OutPut: 排序前的數組元素分別為: 34 23 78 56 31 66 排序後的數組元素分別為: 23 31 34 56 66 78
Java 基本文法---Java數組