數(shù)組知識(shí)的回顧

## 數(shù)組

數(shù)組的概念:

數(shù)組是一個(gè)變量,用來(lái)存放一組相同數(shù)據(jù)類型變量的容器檀葛。

數(shù)組的格式:

* 數(shù)據(jù)類型[ ] 數(shù)組名;

* 數(shù)據(jù)類型 數(shù)組名[ ];

數(shù)組的屬性:通過(guò)arr.length來(lái)表示數(shù)組的長(zhǎng)度玩祟。

數(shù)組異常:

1.下標(biāo)越界。比如如下代碼:

```java

public class Array {

public static void main(String[] args) {

// 聲明數(shù)組

int[] arr =new int[3] ;

//給數(shù)組每一個(gè)元素賦值

arr[0]=6;

arr[1]=12;

arr[2]=26;

arr[3]=3;//數(shù)組的下標(biāo)不在 0~arr.length之間

System.out.println(Arrays.toString(arr));

}

}

```

? 2.空指針屿聋。如下代碼:

```java

public class Array {

public static void main(String[] args) {

//對(duì)象沒(méi)有new,就訪問(wèn)對(duì)象成員

int[] arr2 = null;

System.out.println(arr2[1]); // java.lang.NullPointerException

}

}

```

數(shù)組的初始化

靜態(tài)初始化

格式一: 數(shù)據(jù)類型[ ] 數(shù)組名 = {元素1,元素2,...元素n};

格式二: 數(shù)據(jù)類型[ ] 數(shù)組名 = new int[]{元素1,元素2,...元素n};

動(dòng)態(tài)初始化

數(shù)據(jù)類型[ ] 數(shù)組名 = new 數(shù)據(jù)類型[數(shù)組的大小];

可以采用以下三種方式初始化

1.逐個(gè)初始化

2.通過(guò)鍵盤(pán)輸入

3.通過(guò)隨機(jī)數(shù)初始化

***注意不管是靜態(tài)初始化還是動(dòng)態(tài)初始化空扎,一定在創(chuàng)建的時(shí)候,就指明數(shù) 組的長(zhǎng)度润讥。數(shù)組的長(zhǎng)度一旦確定转锈,就不可以更改。

1.逐個(gè)初始化

```java

public class Array {

public static void main(String[] args) {

int[] arr = new int[3];

arr[0] =10;

arr[1] = 8;

arr[2] = 50;

System.out.println(arr[0]);

System.out.println(arr[1]);

System.out.println(arr[2]);

}

}

```

2.通過(guò)鍵盤(pán)輸入

* 舉例:Java考試結(jié)束后楚殿,老師給冰冰分配了一項(xiàng)任務(wù)撮慨,讓他計(jì)算全班(30人)的平均分。

```java

import java.util.Scanner;

public class ArraysDemo01 {

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner input = new Scanner(System.in);

double [] score = new double [30];

double sum = 0.0;

double average = 0.0;

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

System.out.print("請(qǐng)輸入第" + (i + 1) + "個(gè)學(xué)生成績(jī): ");

score[i] = input.nextDouble();

sum+= score[i];

}

average = sum/score.length;

System.out.println(score.length+"個(gè)學(xué)生成績(jī)的平均分是: "+average);

}

}

```

3.隨機(jī)數(shù)初始化

```java

public class Array {

public static void main(String[] args) {

int[] arr = new int[ ]{10,20,30,40,50};

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

arr[i] = (int) (Math.random() * 10);

}

System.out.println(Arrays.toString(arr));

}

}

```

數(shù)組的遍歷

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

System.out.println(arr[i]);

}

##舉例:有一個(gè)數(shù)列:8脆粥,4砌溺,2,1变隔,23规伐,344,12匣缘,循環(huán)輸出數(shù)列的值猖闪。

```java

public class Array {

public static void main(String[] args) {

int[] arr = {8,4,2,1,23,344,12};

String s = arrayToString(arr);

System.out.println(arrayToString(arr));

}

public static String arrayToString(int[] arr) {

String result = "";

result += "[";

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

if (i == arr.length - 1) {

result += arr[i];

} else {

result += arr[i] + ", ";

}

}

result += "]"

return result;

}

}

```

數(shù)組的最值思想

舉例:有一個(gè)數(shù)列:9,5孵户,1萧朝,10,89夏哭,569检柬,16,求出最大值和最小值。

```java

//求上述數(shù)列的最大值

public class Array {

public static void main(String[] args) {

int[] arr = {9,5,1,10,89,569何址,16};

System.out.println("最大值:" + getMaxValue(arr));

}

? ? public static int getMaxValue(int[] arr) {

// 1.假設(shè)第一個(gè)數(shù)為最大值

int max = arr[0];

// 2.遍歷數(shù)組中的每一個(gè)元素

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

// 獲取到每一個(gè)元素arr[i]

// 3.判斷獲取的元素是否比max大

if (arr[i] > max) {

// 4.設(shè)置arr[i]為最大值

max = arr[i];

}

}

return max;

}

}

```

```java

//求上述數(shù)列的最小值

public class Array {

public static void main(String[] args) {

int[] arr = {9,5,1,10,89,569里逆,16};

System.out.println("最大值:" + getMinValue(arr));

}

? ? public static int getMinValue(int[] arr) {

// 1.假設(shè)第一個(gè)數(shù)為最小值

int min = arr[0];

// 2.遍歷數(shù)組中的每一個(gè)元素

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

// 獲取到每一個(gè)元素arr[i]

// 3.判斷獲取的元素是否比min大

if (arr[i] <max) {

// 4.設(shè)置arr[i]為最小值

min = arr[i];

}

}

return max;

}

}

```

數(shù)組倒置思想

舉例:有一個(gè)數(shù)列:8,4用爪,2原押,1,23偎血,344诸衔,12,將數(shù)組倒置并輸出。

```java

public class Array {

public static void main(String[] args) {

? int[] arr = {8,4,2,1,23,344,12};

? System.out.println("倒置前: " + arrays.toString(arr));

? reverseArray(arr);

? System.out.println("倒置后: " + arrays.toString(arr));

}

public static void reverseArray(int[] arr) {

? for (int i = 0; i < arr.length / 2; i++) {

int temp = 0;

temp = arr[i];

arr[i] = arr[arr.length - 1 - i];

arr[arr.length - 1 - i] = temp;

}

}

```

數(shù)組查找思想

舉例:有一個(gè)數(shù)列:8颇玷,4笨农,2,1帖渠,23谒亦,344,12空郊,數(shù)組查找 猜數(shù)游戲:從鍵盤(pán)中任意輸入一個(gè)數(shù)據(jù)份招,判斷數(shù)列中是否包含此數(shù)。

```java

public class ArrayDemo06 {

public static void main(String[] args) {

int[] arr = {8,4,2,1,23,344,12};

Scanner input = new Scanner(System.in);

? ? int num = input.nextInt();

? ? int index = baiscSearch(arr, num);

System.out.println(index != -1 ? "找到了該數(shù)" + arr[index] : "該數(shù)在數(shù)組中不存在");

}

public static int baiscSearch(int[] arr, int num) {

int index = -1;

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

if (arr[i] == num) {

index = i;

break;

}

}

return index;

}

}

```

數(shù)組排列思想(冒泡排列)

舉例:有一個(gè)數(shù)列:8狞甚,4锁摔,2,1入愧,23鄙漏,344,12棺蛛,數(shù)組排序。

```java

public class ArrayDemo06 {

public static void main(String[] args) {

int[] arr = {8,4,2,1,23,344,12};

bubbleSort(arr);

System.out.println("冒泡排序后: " + arrays.toString(arr));

}

public static void bubbleSort(int[] arr) {

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 temp = 0;

temp = arr[j];

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

arr[j+1] = temp;

? ? ? }

}

}

}

}

```## 數(shù)組

數(shù)組的概念:

數(shù)組是一個(gè)變量,用來(lái)存放一組相同數(shù)據(jù)類型變量的容器巩步。

數(shù)組的格式:

* 數(shù)據(jù)類型[ ] 數(shù)組名;

* 數(shù)據(jù)類型 數(shù)組名[ ];

數(shù)組的屬性:通過(guò)arr.length來(lái)表示數(shù)組的長(zhǎng)度旁赊。

數(shù)組異常:

1.下標(biāo)越界。比如如下代碼:

```java

public class Array {

public static void main(String[] args) {

// 聲明數(shù)組

int[] arr =new int[3] ;

//給數(shù)組每一個(gè)元素賦值

arr[0]=6;

arr[1]=12;

arr[2]=26;

arr[3]=3;//數(shù)組的下標(biāo)不在 0~arr.length之間

System.out.println(Arrays.toString(arr));

}

}

```

? 2.空指針椅野。如下代碼:

```java

public class Array {

public static void main(String[] args) {

//對(duì)象沒(méi)有new,就訪問(wèn)對(duì)象成員

int[] arr2 = null;

System.out.println(arr2[1]); // java.lang.NullPointerException

}

}

```

數(shù)組的初始化

靜態(tài)初始化

格式一: 數(shù)據(jù)類型[ ] 數(shù)組名 = {元素1,元素2,...元素n};

格式二: 數(shù)據(jù)類型[ ] 數(shù)組名 = new int[]{元素1,元素2,...元素n};

動(dòng)態(tài)初始化

數(shù)據(jù)類型[ ] 數(shù)組名 = new 數(shù)據(jù)類型[數(shù)組的大小];

可以采用以下三種方式初始化

1.逐個(gè)初始化

2.通過(guò)鍵盤(pán)輸入

3.通過(guò)隨機(jī)數(shù)初始化

***注意不管是靜態(tài)初始化還是動(dòng)態(tài)初始化终畅,一定在創(chuàng)建的時(shí)候,就指明數(shù) 組的長(zhǎng)度竟闪。數(shù)組的長(zhǎng)度一旦確定离福,就不可以更改。

1.逐個(gè)初始化

```java

public class Array {

public static void main(String[] args) {

int[] arr = new int[3];

arr[0] =10;

arr[1] = 8;

arr[2] = 50;

System.out.println(arr[0]);

System.out.println(arr[1]);

System.out.println(arr[2]);

}

}

```

2.通過(guò)鍵盤(pán)輸入

* 舉例:Java考試結(jié)束后炼蛤,老師給冰冰分配了一項(xiàng)任務(wù)妖爷,讓他計(jì)算全班(30人)的平均分。

```java

import java.util.Scanner;

public class ArraysDemo01 {

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner input = new Scanner(System.in);

double [] score = new double [30];

double sum = 0.0;

double average = 0.0;

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

System.out.print("請(qǐng)輸入第" + (i + 1) + "個(gè)學(xué)生成績(jī): ");

score[i] = input.nextDouble();

sum+= score[i];

}

average = sum/score.length;

System.out.println(score.length+"個(gè)學(xué)生成績(jī)的平均分是: "+average);

}

}

```

3.隨機(jī)數(shù)初始化

```java

public class Array {

public static void main(String[] args) {

int[] arr = new int[ ]{10,20,30,40,50};

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

arr[i] = (int) (Math.random() * 10);

}

System.out.println(Arrays.toString(arr));

}

}

```

數(shù)組的遍歷

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

System.out.println(arr[i]);

}

##舉例:有一個(gè)數(shù)列:8理朋,4絮识,2绿聘,1,23次舌,344熄攘,12,循環(huán)輸出數(shù)列的值彼念。

```java

public class Array {

public static void main(String[] args) {

int[] arr = {8,4,2,1,23,344,12};

String s = arrayToString(arr);

System.out.println(arrayToString(arr));

}

public static String arrayToString(int[] arr) {

String result = "";

result += "[";

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

if (i == arr.length - 1) {

result += arr[i];

} else {

result += arr[i] + ", ";

}

}

result += "]"

return result;

}

}

```

數(shù)組的最值思想

舉例:有一個(gè)數(shù)列:9挪圾,5,1逐沙,10洛史,89,569酱吝,16也殖,求出最大值和最小值。

```java

//求上述數(shù)列的最大值

public class Array {

public static void main(String[] args) {

int[] arr = {9,5,1,10,89,569务热,16};

System.out.println("最大值:" + getMaxValue(arr));

}

? ? public static int getMaxValue(int[] arr) {

// 1.假設(shè)第一個(gè)數(shù)為最大值

int max = arr[0];

// 2.遍歷數(shù)組中的每一個(gè)元素

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

// 獲取到每一個(gè)元素arr[i]

// 3.判斷獲取的元素是否比max大

if (arr[i] > max) {

// 4.設(shè)置arr[i]為最大值

max = arr[i];

}

}

return max;

}

}

```

```java

//求上述數(shù)列的最小值

public class Array {

public static void main(String[] args) {

int[] arr = {9,5,1,10,89,569忆嗜,16};

System.out.println("最大值:" + getMinValue(arr));

}

? ? public static int getMinValue(int[] arr) {

// 1.假設(shè)第一個(gè)數(shù)為最小值

int min = arr[0];

// 2.遍歷數(shù)組中的每一個(gè)元素

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

// 獲取到每一個(gè)元素arr[i]

// 3.判斷獲取的元素是否比min大

if (arr[i] <max) {

// 4.設(shè)置arr[i]為最小值

min = arr[i];

}

}

return max;

}

}

```

數(shù)組倒置思想

舉例:有一個(gè)數(shù)列:8,4崎岂,2捆毫,1,23冲甘,344绩卤,12,將數(shù)組倒置并輸出。

```java

public class Array {

public static void main(String[] args) {

? int[] arr = {8,4,2,1,23,344,12};

? System.out.println("倒置前: " + arrays.toString(arr));

? reverseArray(arr);

? System.out.println("倒置后: " + arrays.toString(arr));

}

public static void reverseArray(int[] arr) {

? for (int i = 0; i < arr.length / 2; i++) {

int temp = 0;

temp = arr[i];

arr[i] = arr[arr.length - 1 - i];

arr[arr.length - 1 - i] = temp;

}

}

```

數(shù)組查找思想

舉例:有一個(gè)數(shù)列:8江醇,4濒憋,2,1陶夜,23凛驮,344,12条辟,數(shù)組查找 猜數(shù)游戲:從鍵盤(pán)中任意輸入一個(gè)數(shù)據(jù)黔夭,判斷數(shù)列中是否包含此數(shù)。

```java

public class ArrayDemo06 {

public static void main(String[] args) {

int[] arr = {8,4,2,1,23,344,12};

Scanner input = new Scanner(System.in);

? ? int num = input.nextInt();

? ? int index = baiscSearch(arr, num);

System.out.println(index != -1 ? "找到了該數(shù)" + arr[index] : "該數(shù)在數(shù)組中不存在");

}

public static int baiscSearch(int[] arr, int num) {

int index = -1;

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

if (arr[i] == num) {

index = i;

break;

}

}

return index;

}

}

```

數(shù)組排列思想(冒泡排列)

舉例:有一個(gè)數(shù)列:8羽嫡,4本姥,2,1杭棵,23婚惫,344,12,數(shù)組排序辰妙。

```java

public class ArrayDemo06 {

public static void main(String[] args) {

int[] arr = {8,4,2,1,23,344,12};

bubbleSort(arr);

System.out.println("冒泡排序后: " + arrays.toString(arr));

}

public static void bubbleSort(int[] arr) {

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 temp = 0;

temp = arr[j];

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

arr[j+1] = temp;

? ? ? }

}

}

}

}

```## 數(shù)組

數(shù)組的概念:

數(shù)組是一個(gè)變量,用來(lái)存放一組相同數(shù)據(jù)類型變量的容器鹰祸。

數(shù)組的格式:

* 數(shù)據(jù)類型[ ] 數(shù)組名;

* 數(shù)據(jù)類型 數(shù)組名[ ];

數(shù)組的屬性:通過(guò)arr.length來(lái)表示數(shù)組的長(zhǎng)度。

數(shù)組異常:

1.下標(biāo)越界密浑。比如如下代碼:

```java

public class Array {

public static void main(String[] args) {

// 聲明數(shù)組

int[] arr =new int[3] ;

//給數(shù)組每一個(gè)元素賦值

arr[0]=6;

arr[1]=12;

arr[2]=26;

arr[3]=3;//數(shù)組的下標(biāo)不在 0~arr.length之間

System.out.println(Arrays.toString(arr));

}

}

```

? 2.空指針蛙婴。如下代碼:

```java

public class Array {

public static void main(String[] args) {

//對(duì)象沒(méi)有new,就訪問(wèn)對(duì)象成員

int[] arr2 = null;

System.out.println(arr2[1]); // java.lang.NullPointerException

}

}

```

數(shù)組的初始化

靜態(tài)初始化

格式一: 數(shù)據(jù)類型[ ] 數(shù)組名 = {元素1,元素2,...元素n};

格式二: 數(shù)據(jù)類型[ ] 數(shù)組名 = new int[]{元素1,元素2,...元素n};

動(dòng)態(tài)初始化

數(shù)據(jù)類型[ ] 數(shù)組名 = new 數(shù)據(jù)類型[數(shù)組的大小];

可以采用以下三種方式初始化

1.逐個(gè)初始化

2.通過(guò)鍵盤(pán)輸入

3.通過(guò)隨機(jī)數(shù)初始化

***注意不管是靜態(tài)初始化還是動(dòng)態(tài)初始化,一定在創(chuàng)建的時(shí)候尔破,就指明數(shù) 組的長(zhǎng)度街图。數(shù)組的長(zhǎng)度一旦確定,就不可以更改懒构。

1.逐個(gè)初始化

```java

public class Array {

public static void main(String[] args) {

int[] arr = new int[3];

arr[0] =10;

arr[1] = 8;

arr[2] = 50;

System.out.println(arr[0]);

System.out.println(arr[1]);

System.out.println(arr[2]);

}

}

```

2.通過(guò)鍵盤(pán)輸入

* 舉例:Java考試結(jié)束后餐济,老師給冰冰分配了一項(xiàng)任務(wù),讓他計(jì)算全班(30人)的平均分胆剧。

```java

import java.util.Scanner;

public class ArraysDemo01 {

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner input = new Scanner(System.in);

double [] score = new double [30];

double sum = 0.0;

double average = 0.0;

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

System.out.print("請(qǐng)輸入第" + (i + 1) + "個(gè)學(xué)生成績(jī): ");

score[i] = input.nextDouble();

sum+= score[i];

}

average = sum/score.length;

System.out.println(score.length+"個(gè)學(xué)生成績(jī)的平均分是: "+average);

}

}

```

3.隨機(jī)數(shù)初始化

```java

public class Array {

public static void main(String[] args) {

int[] arr = new int[ ]{10,20,30,40,50};

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

arr[i] = (int) (Math.random() * 10);

}

System.out.println(Arrays.toString(arr));

}

}

```

數(shù)組的遍歷

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

System.out.println(arr[i]);

}

##舉例:有一個(gè)數(shù)列:8絮姆,4,2秩霍,1篙悯,23,344铃绒,12鸽照,循環(huán)輸出數(shù)列的值。

```java

public class Array {

public static void main(String[] args) {

int[] arr = {8,4,2,1,23,344,12};

String s = arrayToString(arr);

System.out.println(arrayToString(arr));

}

public static String arrayToString(int[] arr) {

String result = "";

result += "[";

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

if (i == arr.length - 1) {

result += arr[i];

} else {

result += arr[i] + ", ";

}

}

result += "]"

return result;

}

}

```

數(shù)組的最值思想

舉例:有一個(gè)數(shù)列:9颠悬,5矮燎,1,10赔癌,89诞外,569,16届榄,求出最大值和最小值浅乔。

```java

//求上述數(shù)列的最大值

public class Array {

public static void main(String[] args) {

int[] arr = {9,5,1,10,89,569,16};

System.out.println("最大值:" + getMaxValue(arr));

}

? ? public static int getMaxValue(int[] arr) {

// 1.假設(shè)第一個(gè)數(shù)為最大值

int max = arr[0];

// 2.遍歷數(shù)組中的每一個(gè)元素

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

// 獲取到每一個(gè)元素arr[i]

// 3.判斷獲取的元素是否比max大

if (arr[i] > max) {

// 4.設(shè)置arr[i]為最大值

max = arr[i];

}

}

return max;

}

}

```

```java

//求上述數(shù)列的最小值

public class Array {

public static void main(String[] args) {

int[] arr = {9,5,1,10,89,569铝条,16};

System.out.println("最大值:" + getMinValue(arr));

}

? ? public static int getMinValue(int[] arr) {

// 1.假設(shè)第一個(gè)數(shù)為最小值

int min = arr[0];

// 2.遍歷數(shù)組中的每一個(gè)元素

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

// 獲取到每一個(gè)元素arr[i]

// 3.判斷獲取的元素是否比min大

if (arr[i] <max) {

// 4.設(shè)置arr[i]為最小值

min = arr[i];

}

}

return max;

}

}

```

數(shù)組倒置思想

舉例:有一個(gè)數(shù)列:8,4席噩,2班缰,1,23悼枢,344埠忘,12,將數(shù)組倒置并輸出。

```java

public class Array {

public static void main(String[] args) {

? int[] arr = {8,4,2,1,23,344,12};

? System.out.println("倒置前: " + arrays.toString(arr));

? reverseArray(arr);

? System.out.println("倒置后: " + arrays.toString(arr));

}

public static void reverseArray(int[] arr) {

? for (int i = 0; i < arr.length / 2; i++) {

int temp = 0;

temp = arr[i];

arr[i] = arr[arr.length - 1 - i];

arr[arr.length - 1 - i] = temp;

}

}

```

數(shù)組查找思想

舉例:有一個(gè)數(shù)列:8,4莹妒,2名船,1,23旨怠,344渠驼,12,數(shù)組查找 猜數(shù)游戲:從鍵盤(pán)中任意輸入一個(gè)數(shù)據(jù)鉴腻,判斷數(shù)列中是否包含此數(shù)迷扇。

```java

public class ArrayDemo06 {

public static void main(String[] args) {

int[] arr = {8,4,2,1,23,344,12};

Scanner input = new Scanner(System.in);

? ? int num = input.nextInt();

? ? int index = baiscSearch(arr, num);

System.out.println(index != -1 ? "找到了該數(shù)" + arr[index] : "該數(shù)在數(shù)組中不存在");

}

public static int baiscSearch(int[] arr, int num) {

int index = -1;

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

if (arr[i] == num) {

index = i;

break;

}

}

return index;

}

}

```

數(shù)組排列思想(冒泡排列)

舉例:有一個(gè)數(shù)列:8,4爽哎,2蜓席,1,23课锌,344厨内,12,數(shù)組排序渺贤。

```java

public class ArrayDemo06 {

public static void main(String[] args) {

int[] arr = {8,4,2,1,23,344,12};

bubbleSort(arr);

System.out.println("冒泡排序后: " + arrays.toString(arr));

}

public static void bubbleSort(int[] arr) {

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 temp = 0;

temp = arr[j];

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

arr[j+1] = temp;

? ? ? }

}

}

}

}

```## 數(shù)組

數(shù)組的概念:

數(shù)組是一個(gè)變量,用來(lái)存放一組相同數(shù)據(jù)類型變量的容器雏胃。

數(shù)組的格式:

* 數(shù)據(jù)類型[ ] 數(shù)組名;

* 數(shù)據(jù)類型 數(shù)組名[ ];

數(shù)組的屬性:通過(guò)arr.length來(lái)表示數(shù)組的長(zhǎng)度。

數(shù)組異常:

1.下標(biāo)越界癣亚。比如如下代碼:

```java

public class Array {

public static void main(String[] args) {

// 聲明數(shù)組

int[] arr =new int[3] ;

//給數(shù)組每一個(gè)元素賦值

arr[0]=6;

arr[1]=12;

arr[2]=26;

arr[3]=3;//數(shù)組的下標(biāo)不在 0~arr.length之間

System.out.println(Arrays.toString(arr));

}

}

```

? 2.空指針丑掺。如下代碼:

```java

public class Array {

public static void main(String[] args) {

//對(duì)象沒(méi)有new,就訪問(wèn)對(duì)象成員

int[] arr2 = null;

System.out.println(arr2[1]); // java.lang.NullPointerException

}

}

```

數(shù)組的初始化

靜態(tài)初始化

格式一: 數(shù)據(jù)類型[ ] 數(shù)組名 = {元素1,元素2,...元素n};

格式二: 數(shù)據(jù)類型[ ] 數(shù)組名 = new int[]{元素1,元素2,...元素n};

動(dòng)態(tài)初始化

數(shù)據(jù)類型[ ] 數(shù)組名 = new 數(shù)據(jù)類型[數(shù)組的大小];

可以采用以下三種方式初始化

1.逐個(gè)初始化

2.通過(guò)鍵盤(pán)輸入

3.通過(guò)隨機(jī)數(shù)初始化

***注意不管是靜態(tài)初始化還是動(dòng)態(tài)初始化,一定在創(chuàng)建的時(shí)候述雾,就指明數(shù) 組的長(zhǎng)度街州。數(shù)組的長(zhǎng)度一旦確定,就不可以更改玻孟。

1.逐個(gè)初始化

```java

public class Array {

public static void main(String[] args) {

int[] arr = new int[3];

arr[0] =10;

arr[1] = 8;

arr[2] = 50;

System.out.println(arr[0]);

System.out.println(arr[1]);

System.out.println(arr[2]);

}

}

```

2.通過(guò)鍵盤(pán)輸入

* 舉例:Java考試結(jié)束后唆缴,老師給冰冰分配了一項(xiàng)任務(wù),讓他計(jì)算全班(30人)的平均分黍翎。

```java

import java.util.Scanner;

public class ArraysDemo01 {

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner input = new Scanner(System.in);

double [] score = new double [30];

double sum = 0.0;

double average = 0.0;

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

System.out.print("請(qǐng)輸入第" + (i + 1) + "個(gè)學(xué)生成績(jī): ");

score[i] = input.nextDouble();

sum+= score[i];

}

average = sum/score.length;

System.out.println(score.length+"個(gè)學(xué)生成績(jī)的平均分是: "+average);

}

}

```

3.隨機(jī)數(shù)初始化

```java

public class Array {

public static void main(String[] args) {

int[] arr = new int[ ]{10,20,30,40,50};

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

arr[i] = (int) (Math.random() * 10);

}

System.out.println(Arrays.toString(arr));

}

}

```

數(shù)組的遍歷

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

System.out.println(arr[i]);

}

##舉例:有一個(gè)數(shù)列:8面徽,4,2匣掸,1趟紊,23,344碰酝,12霎匈,循環(huán)輸出數(shù)列的值。

```java

public class Array {

public static void main(String[] args) {

int[] arr = {8,4,2,1,23,344,12};

String s = arrayToString(arr);

System.out.println(arrayToString(arr));

}

public static String arrayToString(int[] arr) {

String result = "";

result += "[";

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

if (i == arr.length - 1) {

result += arr[i];

} else {

result += arr[i] + ", ";

}

}

result += "]"

return result;

}

}

```

數(shù)組的最值思想

舉例:有一個(gè)數(shù)列:9送爸,5铛嘱,1暖释,10,89墨吓,569球匕,16,求出最大值和最小值帖烘。

```java

//求上述數(shù)列的最大值

public class Array {

public static void main(String[] args) {

int[] arr = {9,5,1,10,89,569亮曹,16};

System.out.println("最大值:" + getMaxValue(arr));

}

? ? public static int getMaxValue(int[] arr) {

// 1.假設(shè)第一個(gè)數(shù)為最大值

int max = arr[0];

// 2.遍歷數(shù)組中的每一個(gè)元素

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

// 獲取到每一個(gè)元素arr[i]

// 3.判斷獲取的元素是否比max大

if (arr[i] > max) {

// 4.設(shè)置arr[i]為最大值

max = arr[i];

}

}

return max;

}

}

```

```java

//求上述數(shù)列的最小值

public class Array {

public static void main(String[] args) {

int[] arr = {9,5,1,10,89,569,16};

System.out.println("最大值:" + getMinValue(arr));

}

? ? public static int getMinValue(int[] arr) {

// 1.假設(shè)第一個(gè)數(shù)為最小值

int min = arr[0];

// 2.遍歷數(shù)組中的每一個(gè)元素

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

// 獲取到每一個(gè)元素arr[i]

// 3.判斷獲取的元素是否比min大

if (arr[i] <max) {

// 4.設(shè)置arr[i]為最小值

min = arr[i];

}

}

return max;

}

}

```

數(shù)組倒置思想

舉例:有一個(gè)數(shù)列:8蚓让,4乾忱,2,1历极,23窄瘟,344,12,將數(shù)組倒置并輸出趟卸。

```java

public class Array {

public static void main(String[] args) {

? int[] arr = {8,4,2,1,23,344,12};

? System.out.println("倒置前: " + arrays.toString(arr));

? reverseArray(arr);

? System.out.println("倒置后: " + arrays.toString(arr));

}

public static void reverseArray(int[] arr) {

? for (int i = 0; i < arr.length / 2; i++) {

int temp = 0;

temp = arr[i];

arr[i] = arr[arr.length - 1 - i];

arr[arr.length - 1 - i] = temp;

}

}

```

數(shù)組查找思想

舉例:有一個(gè)數(shù)列:8蹄葱,4,2锄列,1图云,23,344邻邮,12竣况,數(shù)組查找 猜數(shù)游戲:從鍵盤(pán)中任意輸入一個(gè)數(shù)據(jù),判斷數(shù)列中是否包含此數(shù)筒严。

```java

public class ArrayDemo06 {

public static void main(String[] args) {

int[] arr = {8,4,2,1,23,344,12};

Scanner input = new Scanner(System.in);

? ? int num = input.nextInt();

? ? int index = baiscSearch(arr, num);

System.out.println(index != -1 ? "找到了該數(shù)" + arr[index] : "該數(shù)在數(shù)組中不存在");

}

public static int baiscSearch(int[] arr, int num) {

int index = -1;

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

if (arr[i] == num) {

index = i;

break;

}

}

return index;

}

}

```

數(shù)組排列思想(冒泡排列)

舉例:有一個(gè)數(shù)列:8丹泉,4,2鸭蛙,1摹恨,23,344娶视,12晒哄,數(shù)組排序。

```java

public class ArrayDemo06 {

public static void main(String[] args) {

int[] arr = {8,4,2,1,23,344,12};

bubbleSort(arr);

System.out.println("冒泡排序后: " + arrays.toString(arr));

}

public static void bubbleSort(int[] arr) {

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 temp = 0;

temp = arr[j];

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

arr[j+1] = temp;

? ? ? }

}

}

}

}

```

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末肪获,一起剝皮案震驚了整個(gè)濱河市寝凌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌孝赫,老刑警劉巖硫兰,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異寒锚,居然都是意外死亡劫映,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)刹前,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)泳赋,“玉大人,你說(shuō)我怎么就攤上這事喇喉∽娼瘢” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵拣技,是天一觀的道長(zhǎng)千诬。 經(jīng)常有香客問(wèn)我,道長(zhǎng)膏斤,這世上最難降的妖魔是什么徐绑? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮莫辨,結(jié)果婚禮上傲茄,老公的妹妹穿的比我還像新娘。我一直安慰自己沮榜,他們只是感情好盘榨,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著蟆融,像睡著了一般草巡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上型酥,一...
    開(kāi)封第一講書(shū)人閱讀 51,462評(píng)論 1 302
  • 那天山憨,我揣著相機(jī)與錄音,去河邊找鬼冕末。 笑死萍歉,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的档桃。 我是一名探鬼主播枪孩,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼藻肄!你這毒婦竟也來(lái)了蔑舞?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤嘹屯,失蹤者是張志新(化名)和其女友劉穎攻询,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體州弟,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡钧栖,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年低零,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拯杠。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡掏婶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出潭陪,到底是詐尸還是另有隱情雄妥,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布依溯,位于F島的核電站老厌,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏黎炉。R本人自食惡果不足惜枝秤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望拜隧。 院中可真熱鬧宿百,春花似錦、人聲如沸洪添。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)干奢。三九已至痊焊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間忿峻,已是汗流浹背薄啥。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留逛尚,地道東北人垄惧。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像绰寞,于是被迫代替她去往敵國(guó)和親到逊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 【程序1】 題目:古典問(wèn)題:有一對(duì)兔子滤钱,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子觉壶,小兔子長(zhǎng)到第三個(gè)月后每個(gè)月又生一對(duì)兔...
    開(kāi)心的鑼鼓閱讀 3,320評(píng)論 0 9
  • 第四天 數(shù)組【悟空教程】 第04天 Java基礎(chǔ) 第1章數(shù)組 1.1數(shù)組概念 軟件的基本功能是處理數(shù)據(jù),而在處理數(shù)...
    Java幫幫閱讀 1,598評(píng)論 0 9
  • DAY 05 1件缸、 public classArrayDemo { public static void mai...
    周書(shū)達(dá)閱讀 665評(píng)論 0 0
  • Java經(jīng)典問(wèn)題算法大全 /*【程序1】 題目:古典問(wèn)題:有一對(duì)兔子铜靶,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子...
    趙宇_阿特奇閱讀 1,866評(píng)論 0 2
  • 31武雪玉 懵懵懂懂他炊,大二的我們“被實(shí)習(xí)”争剿。幸運(yùn)的是已艰,實(shí)習(xí)期,遇見(jiàn)了這么一群可愛(ài)純潔的小天使秒梅,讓我倍感溫...
    小金子大豆子閱讀 180評(píng)論 0 0