您當前的位置:首頁 > 體育

關於陣列的概念及基本操作思想

作者:由 仰望天空丶路人 發表于 體育時間:2019-04-16

陣列的概念

用來存放連續的一組相同資料型別的變數。

陣列的特點

1。陣列本質也是一個變數,既然是變數,就必須滿足變數的三要素。

a。宣告 int a; // 向計算機申請4個位元組的記憶體空間 。

b。賦值 a = 10; //計算機將變數a翻譯成記憶體地址,透過地址找到對應的空間,將10賦值給這個空間。

c。使用 a ++; //透過地址將a的資料取出,進行計算。

2。陣列只能夠存放相同的資料型別。

3。陣列的宣告表示將計算機申請連續的記憶體空間,陣列的首地址就是第一個元素的地址 。[I@15db9742

4。陣列的資料型別可以八大基本資料型別,也可以是引用型別。

陣列的定義格式:

格式一: 資料型別[] 陣列名 = new 資料型別[陣列的長度]; (Java中寫法)

格式二: 資料型別 陣列名[] = new 資料型別[陣列的長度]; (C語言的寫法)

如何訪問一個數組的元素:

陣列名[索引]

索引/下標: 表示元素的位置,索引從0開始

java。lang。ArrayIndexOutOfBoundsException: 3

ArrayIndexOutOfBoundsException: 索引越界

產生原因: 訪問了不存在的索引

解決辦法: 檢查索引是否超出了[0,3) 的範圍

陣列的初始化

靜態初始化

格式一: 資料型別[] 陣列名 = {元素1,元素2,元素3,元素4,元素5,…元素n};

格式二: 資料型別[] 陣列名 = new int[]{元素1,元素2,元素3,元素4,元素5,…元素n};

動態初始化

資料型別[] 陣列名 = new 資料型別[陣列的大小];

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

1。逐個初始化

2。透過鍵盤輸入

3。透過隨機數初始化

###動態初始化和靜態初始化的區別

靜態初始化: 初始化的同時為每一個元素給出初始值,不需要指定陣列的長度,系統會根據元素的個數去動態計算陣列的長度。

動態初始化: 初始化的系統來為陣列賦初始值,預設值是堆區的特點的預設值,但是必須由我們指定陣列的長度。

陣列的基本操作思想

遍歷

// 迴圈輸出數列的值並按照如下格式輸出。arr[44,77,88,99,100,22]

//int[] arr = {44,77,88,99,100,22};

public static String name(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;

}

求和

//求數列中所有數值的和

public static int number(int[] arr) {

//定義求和變數

int sum = 0;

//遍歷陣列

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

sum += arr[i];

}

return sum;

}

求最值

//求出最小值

public static int maximun(int[] arr) {

//假設最小值為第一個數

int min = arr[0];

//遍歷每一個數

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

//比較每一個數

min = (min

}

return min;

}

倒置

//將陣列倒置並輸出 [22,100,99,88,77,44]

public static void convert(int[] arr) {

//遍歷陣列

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

int block = 0;

block = arr[i];

//調換位置

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

arr[arr。length - 1 - i] = block;

}

}

查詢

//基本查詢

public static boolean lookUp(int[] arr,int num) {

//定義返回值變數

boolean flag = false;

//遍歷陣列

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

//查詢

if (arr[i] == num) {

flag = true;

break;

}

}

return flag;

}

//二分法查詢 * 只能針對排序好的數列

public static boolean dichotomy(int[] arr , int n) {

boolean flag = true;

//定義最小索引和最大索引

int min = 0;

int max = arr。length-1;

//計算中間索引

int mid = (min + max) / 2;

while (arr[mid]!= n) {

if (arr[mid]>n) {

max = mid - 1;

}else if (arr[mid]

min = mid + 1;

}

if (min > max) {

return false;

}

//重新計算中間索引

mid = (min + max) / 2;

}

return flag;

}

排序

//氣泡排序

public static void bubbling(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 num = 0;

num = arr[j];

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

arr[j+1] = num;

}

}

}

}

//選擇排序

public static void choice(int[] arr) {

//外層迴圈控制排序次數

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

//內層迴圈控制交換次數

for (int j = i + 1; j < arr。length; j++) {

//定義交換條件

if (arr[j] < arr[i]) {

//定義中間變數

int sum = 0;

sum = arr[j];

arr[j] = arr[i];

arr[i] = sum;

}

}

}

}

標簽: arr  int  陣列  length  資料型別