java 基础5
一、??????? 什么是數(shù)組及其作用?
??? 定義:具有相同數(shù)據(jù)類型的一個集合
??? 作用:存儲連續(xù)的具有相同類型的數(shù)據(jù)
二、??????? java中如何聲明和定義數(shù)組
2.1?聲明和定義的語法:
?????? ?數(shù)據(jù)類型[ ] 數(shù)組名;( int[ ] nums ; )?? 或 數(shù)據(jù)類型 數(shù)組名[]; ?( int nums[ ] ;)
2.2? 為數(shù)組分配空間
數(shù)組名=new 數(shù)據(jù)類型[數(shù)組的長度]; ( nums=new int[5] ;)
2.3 ?聲明數(shù)組,同時分配空間
數(shù)據(jù)類型[]數(shù)組名= new 數(shù)據(jù)類型[數(shù)組的長度];
數(shù)據(jù)類型 數(shù)組名[]=new 數(shù)據(jù)類型[數(shù)組的長度];
????? ( int[ ] nums=new int[5] ;)?? ( int nums[ ]=new int[5] ;)
三、??????? 如何讀取數(shù)組中的元素—?通過下標(索引)來獲取
下標(索引)是從0開始,最大下標為??數(shù)組長度-1
下標越界:ArrayIndexOutOfBoundsException
int類型的數(shù)組,每個元素的默認值為0
String類型的數(shù)組,每個元素的默認值為null
???3.1?????????獲取單個元素的值
數(shù)據(jù)類型 變量名=數(shù)組名[下標];
?
?? 3.2?????循環(huán)讀取數(shù)組中的每個元素
數(shù)組的長度:數(shù)組名.length?屬性自動計算
for(int i=0;i<數(shù)組名.length ;i++){
??????????????????????? 數(shù)組名[i];
}
?
四。如何給數(shù)組中的元素賦值
方式1(賦予數(shù)組固定值):
????? ? 聲明數(shù)組,分配空間,并賦值
(數(shù)組的長度由值的個數(shù)決定)
數(shù)據(jù)類型? 數(shù)組名[]=new 數(shù)據(jù)類型[]{值1,值2…值n};
或
數(shù)據(jù)類型 []數(shù)組名={值1,值2…值n};
說明:[]中括號可以放在數(shù)組名前面或后面
方式2:動態(tài)的給數(shù)組賦值(從鍵盤中輸入)
????????????????????? Scanner? input = new Scanner(System.in);
????????????????????? for(int i=0;i<數(shù)組名.length ; i++){
????????????????????????????????? ?String類型的數(shù)組名[i]= input.next ();????????
????????????????????????????????? ?int類型的數(shù)組名[i]= input.nextInt ();?????????
????????????????????????????????? ?double類型的數(shù)組[i]=input.nextDouble();
}
?
五、數(shù)組排序問題
使用Arrays. sort(數(shù)組名);
實現(xiàn)對數(shù)組中的元素按升序或降序輸出
六、求最大值或最小值
實現(xiàn)思路:將數(shù)組中的第1個元素的值,假想成最大(小)值【賦值】;然后數(shù)組中的每個元素和假想的這個最大(小)數(shù)進行比較,如果數(shù)組中的某個元素的值,比最大(小)數(shù)要大(小),將該元素的值,保存到假想的最大(小)值對應(yīng)的變量中
public class shuzu {public void D(int []num){int ha []=new int[10];for(int j=0;j<ha.length;j++){int index=(int)(Math.random()*100);ha[j]=index;System.out.print(ha[j]+" ");}int max=ha[0];int min=ha[0];for(int i=1;i<ha.length;i++){if(max<ha[i]){max=ha[i];}if(min>ha[i]){min=ha[i];}}System.out.println("\n"+"最大值為:"+max);System.out.println("最小值為:"+min);} }八、求數(shù)組中最值的位置
1、??????????? 在循環(huán)的外面,定義變量k(賦值為0),用于保存最值的下標
2、??????????? 在循環(huán)中,比較找出最值的同時,給變量k賦值
public static void main(String [] args){Scanner input=new Scanner(System.in);char [] ha={'a','c','u','b','e','p','f','z'};System.out.print("原字符序列:");for (int i=0;i<ha.length;i++){System.out.print(ha[i]+" ");}Arrays.sort(ha);//對數(shù)組進行降序System.out.print("\n升序排列后:");for (int i=0;i<ha.length;i++){System.out.print(ha[i]+" ");}char he[]=new char[9];//創(chuàng)建一個新數(shù)組,進行儲存數(shù)據(jù)for (int i=0;i<ha.length;i++){he[i]=ha[i];}System.out.println("\n插入的字符是:");//輸入新數(shù)據(jù)char a=input.next().charAt(0);int index=he.length-1;//保存新數(shù)據(jù)插入的位置for (int i=0;i<he.length;i++){if(a<he[i]){//對數(shù)字進行判斷index=i;//找到新元素的下標位置break;}}for (int s=he.length-2;s>=index;s--){he[s+1]=he[s]; //將元素從后移動}he[index]=a;//將輸入的值賦到數(shù)組中System.out.println("\n插入的下標是:"+index);for (int k=0;k<he.length;k++){System.out.print(he[k]+" ");}}八、斐波那契數(shù)列
1,1,2,3,5,8,13,21,34……求第20個數(shù)字的值?(使用循環(huán))
規(guī)律:第i個 + 第(i+1)個 = 第(i+2)個
????? 步驟1:定義數(shù)組,數(shù)組長度為20
????????????????? int []nums=new int[20];
步驟2:根據(jù)規(guī)律,獲取第0個和第1個數(shù)的初值
????????????????? nums[0]=1;
????????????????? nums[1]=1;
步驟3:通過循環(huán),給數(shù)組中的所有元素賦值
????????????????????????????? for ( int i=0;i<nums.length-2;i++){
????????????????????????????????????????? nums [i+2]=nums[i]+nums[i+1];
????????????????????????????? }
或
????????????????????????????? for(int i=2;i<nums.length;i++){
????????????????????????????????????????? nums[i]=nums[i-2]+nums[i-1];
????????????????????????????? }
步驟4:輸出nums[19]的值
轉(zhuǎn)載于:https://www.cnblogs.com/qq7337531/p/6986584.html
總結(jié)
- 上一篇: 人脸识别Demo解析C#
- 下一篇: [剑指offer][JAVA]面试题第[