數組

1.數組
數組是用來保存一組相同類型數據的數據結構
數組屬於引用類型
數組中的元素可以是基本數據類型也可以是引用數據類型。
注意:

數組中存放的數據一定是相同的類型。

2.一維數組的聲明和創建
語法:
數據類型[]數組名稱  或者  數據類型 數組名稱[];
例如:
int[]num;
int num[];
注意:
在聲明數組時,不能指明數組的大小。因爲在聲明數組階段,數組還並未真正的存在。
數組的創建:
在Java中使用new關鍵字創建數組,語法:
數組名稱=new 數據類型[指定數組存放數據的個數];

語法2:
數據類型[]數組名稱=new 數據類型[指定數組存放數據的個數];

注意:一旦創建數組,就無法更改數組的大小。

示例:

/**
數組的聲明和創建
*/
public class Test1{
public static void main(String[]args){
//先聲明後創建
int num[];
int[]num1;
num=new int[5];
num1=new int[10];
//邊聲明邊創建
int[]num2=new int[5];
//靜態賦值
int[]num3={1,2,3};
//動態賦值
num[0]=10;
num[1]=20;
num[2]=30;
num[3]=40;
num[4]=50;
//根據下標取值
System.out.println(num3[0]+" "+num3[1]+" "+num3[2]);
System.out.println(num[0]+" "+num[1]+" "+num[2]+" "+num[3]+" "+num[4]);
System.out.println(num.length);
for(int i=0;i<num.length;i++){
System.out.println(num[i]);
}
String[]str={"abc","zhangsan"};
for(int i=0;i<str.length;i++){
System.out.println(str[i]);
}
}
}


3.數組的使用
1.靜態賦值:在定義數組的同時就爲數組元素分配空間並賦值
語法:
數據類型[]數組名稱={數據1,數據2,...};
例如:   int[]num={1,2,3};

語法:
數據類型[]數組名稱=new 數據類型[]{數據1,數據2,...};

2.動態賦值:就是先創建數組,然後給據數組的下標進行賦值。
數組的下標是從0開始的。
通過length屬性可以獲取數組的長度,語法:
數組名稱.length

數組下標取值的範圍是數組長度-1;

4.增強的for循環
語法:
for(數據類型 變量名稱:數組名稱或集合名稱){

}
缺陷:
遍歷數組或集合時無法訪問索引(下標)值
用途:
只適合遍歷顯示數組或集合中元素的內容。

示例:

/**
增強的for循環
*/
public class Test2{
public static void main(String[]args){
int []num={1,2,3,4,5,6};
for(int a:num){
System.out.println(a);
}
}
}


5.命令行參數
Java程序的入口方法main 方法,帶有String[] args參數。這個參數表示main方 法接收了一個字符串數組,也就是命令行參數。
使用:
在使用java命令時,在類名的後面進行參數傳遞,多個參數用空格隔開。

示例:

/**
命令行參數  示例
*/
public class Test3{
public static void main(String[]args){
for(int i=0;i<args.length;i++){
System.out.println(args[i]);
}
}
}


6.最大值和最小值
原理:可以利用數組中的某個元素和數組中其他元素進行循環對比。

7.Arrays數組排序
數組中元素可以直接利用java.util.Arrays類,java.util包中提供了許多存儲 數據的結構和方法。Arrays類提供了許多方法操作數組,如:排序,查找等方法。
Arrays類中的sort()方法就是用來對數組進行升序排列的方法。

示例:

/**
Arrays類 示例
*/
import java.util.Arrays;
public class Test7{
public static void main(String[]args){
int []num={30,2,10,8,69,11,1};
//排序
Arrays.sort(num);
//for(int i=0;i<num.length;i++){
// System.out.println(num[i]);
//}
for(int i=num.length-1;i>=0;i--){
System.out.println(num[i]);
}
}
}


8.數組的複製
通過System類中的arraycopy()方法實現數組的複製。
arraycopy(arg1,arg2,arg3,arg4,arg5)方法中需要傳遞五個參數
arg1表示:源數組
arg2表示:從源數組的哪個位置開始複製
arg3表示:目標數組
arg4表示:把複製的元素從目標數組哪個位置開始存放
arg5表示:要複製的數組元素的數量

示例:

/**
編寫一個程序,能夠實現對數組的複製。
int[]num={1,2,3,4,5};
*/
public class Test8{
public static void main(String[]args){
int[]num={1,2,3,4,5};
int[]num1=new int[num.length];
//for(int i=0;i<num.length;i++){
// num1[i]=num[i];
//}
System.arraycopy(num,0,num1,0,num.length);
for(int a:num1){
System.out.println(a);
}
}
}


綜合例題

例題:

/**
用鍵盤輸入10個學員的成績並計算總成績和平均成績

對輸入的數進行升序排列
*/
import java.util.Scanner;
public class Test5{
public static void main(String[]args){
Scanner s=new Scanner(System.in);
double []score=new double[10];
double sum=0;
for(int i=0;i<score.length;i++){
System.out.println("請輸入第"+(i+1)+"個成績:");
score[i]=s.nextDouble();
sum+=score[i];
}

double max=score[0];
double min=score[0];
for(int i=0;i<score.length;i++){
if(max<score[i]){
max=score[i];
}
if(min>score[i]){
min=score[i];
}
}

System.out.println("總成績:"+sum);
System.out.println("平均成績:"+(sum/score.length));

System.out.println("最大值:"+max);
System.out.println("最小值:"+min);

}
}
















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章