一、概念
存儲同一種數(shù)據(jù)類型的多個元素的容器
二,、格式
1、數(shù)據(jù)類型[] 數(shù)據(jù)名;--int []a:定義一個int類型的數(shù)組a變量
2,、數(shù)據(jù)類型 數(shù)據(jù)名[];--int a []:定義一個int類型的a數(shù)據(jù)變量
注意:效果可以認(rèn)為是一樣的,,都是定義一個int數(shù)組,但是念法上有些小區(qū)別,,推薦使用一種
三,、數(shù)組初始化
1、概念:就是為數(shù)據(jù)開辟內(nèi)存空間,,并為每個數(shù)組元素賦予值
2,、初始化方式
動態(tài)初始化:指定長度,有系統(tǒng)給出初始化值:數(shù)據(jù)類型[]數(shù)組名=new數(shù)據(jù)類型[數(shù)組長度]
int []arr=new int[3]
靜態(tài)初始化:給出初始化,,由系統(tǒng)決定長度:數(shù)據(jù)類型[]數(shù)據(jù)名=new 數(shù)據(jù)類型[]{元素1,,元素2...}-->數(shù)據(jù)類型[]數(shù)據(jù)名={元素1,元素2...}
int []arr=new int[]{1,2,3};--->簡化后:int []arr={1,2,3};
3,、獲取數(shù)組中的元素
A,、數(shù)組名[索引]:索引就是每個元素的編號,從0開始,,最大索引是數(shù)組長度-1
4,、常見問題
A、ArrayIndexOutOfBoundsException:數(shù)組索引越界異常-->訪問了不存在的索引
B,、NullPointerException:空指針異常-->數(shù)組已經(jīng)不在指向堆內(nèi)存了,。而你還用數(shù)組名去訪問元素
四,、Java中的內(nèi)存分配
五、練習(xí)
1,、遍歷數(shù)組
int [] arr={11,22,33,44,55};
for(int i =0;i<arr.length;i ){
System.out.println(arr[i]);
}
2,、獲取數(shù)據(jù)中的最大,小值
@Test
public void test1(){
int[] arr = {34,98,10,25,67};
System.out.println(getMax(arr));
System.out.println(getMin(arr));
}
public static int getMin(int []arr){
int min=arr[0];
for (int i = 1; i < arr.length; i ) {
if(min>arr[i]){
min=arr[i];
}
}
return min;
}
public static int getMax(int []arr){
int max =arr[0];
for (int i = 1; i <arr.length ; i ) {
if(max<arr[i]){
max=arr[i];
}
}
return max;
}
3,、數(shù)組元素逆序
@Test
public void test1(){
int[] arr = {34,98,10,25,67};
reverse2(arr);
printArr(arr);
}
public static void reverse2(int []arr){
for(int start=0,end=arr.length-1;start<=end;start ,end--){
int temp=arr[start];
arr[start]=arr[end];
arr[end]=temp;
}
}
public static void reverse(int [] arr){
for (int i = 0; i <arr.length/2 ; i ) {
int temp=arr[i];
arr[i]=arr[arr.length-1-i];
arr[arr.length-1-i]=temp;
}
}
public static void printArr(int []arr){
System.out.print("[");
for (int i = 0; i <arr.length ; i ) {
if (i==arr.length-1){
System.out.println(arr[i] "]");
}else {
System.out.print(arr[i] ",");
}
}
}
4,、數(shù)組查表法(輸入索引,查找對應(yīng)數(shù)據(jù))
@Test
public void test1(){
int[] arr = {34,98,10,25,67};
int index=1;
for(int i=0;i<arr.length;i ){
if(arr[index]==arr[i]){
System.out.println(arr[index]);
}
}
}
5,、數(shù)組元素查找(查找指定元素第一次在數(shù)組中出現(xiàn)的索引)
@Test
public void test1(){
int[] arr = {34,98,10,25,67};
System.out.println(getIndex(arr,98));
}
public static int getIndex(int[]arr,int value){
int index=-1;
for (int i = 0; i < arr.length; i ) {
if(arr[i]==value){
index=i;
break;
}
}
return index;
}
來源:https://www./content-4-786251.html
|