java 一维数组_java基础 ---- 一维数组
為什么要使用數組: 因為不使用數組計算多個變量的時候太繁瑣,不利于數據的處理。
-------- ? 數組也是一個變量,是存儲一組相同類型的變量
聲明一個變量就是在內存中劃出一塊合適的空間
聲明一個數組就是在內存中劃出一塊連續的空間
數組長度就是數組存放了多少個數,最大下標等于數組長度減一
數組中所有的元素必須屬于相同的數據類型
----------- ?如何使用數組
注意: 在邊聲明邊賦值的時候不要再聲明長度了 ? [] 中不要在寫值了偶
邊聲明邊賦值的時候數組的長度就被確定了,不能在往數組里面添加數字了
---- ? 練習
importjava.util.Scanner;public classArrayDemo {/*** 使用數組計算平均分*/
public static voidmain(String[] args) {int[] scores = new int[5]; //成績數組
int sum = 0; //成績總和
Scanner input = newScanner(System.in);
System.out.println("請輸入5位學員的成績:");for(int i = 0; i < scores.length; i++){
scores[i]=input.nextInt();
sum= sum + scores[i]; //成績累加
}/*//使用foreach遍歷
for(int i = 0; i < scores.length; i++){
scores[i] = input.nextInt();
}
for(int score:scores){
sum+=score;
}*/
//計算并輸出平均分
System.out.println("學員的平均分是:" + (double)sum/scores.length);
}
}
----- 使用數組的常見錯誤
1、直接賦值的時候不需要寫長度 ?但是不賦值的話要寫長度, ? ?int[] scores = new int[];
2、數組下標越界異常 ? ? ?下標超過了數組長度減一的值
3、在進行創建數組并賦值的時候要放在同一條語句中
---- ?猜數游戲
import java.util.*;public classGuessData {public static voidmain(String[] args) {int[] list = new int[] { 8, 4, 2, 1, 23, 344, 12 }; //創建數組并賦值
int sum=0;//循環輸出數列的值//求數列中所有數值的和
for(intnum:list){
System.out.println(num);
sum+=num;
}
System.out.println("數組元素之和為:"+sum);
Scanner input= newScanner(System.in);
System.out.print("請輸入一個整數: ");int guess =input.nextInt();boolean isCorrect = false;for (int i = 0; i < list.length; i++) {if (guess ==list[i]) {
isCorrect= true;break;
}
}if(isCorrect) {
System.out.println("猜對了!");
}else{
System.out.println("Sorry!");
}
}
}
----- ? 求最大值
importjava.util.Scanner;public classMaxScore {/*** 求數組最大值*/
public static voidmain(String[] args) {int[] scores = new int[5];int max = 0; //記錄最大值
System.out.println("請輸入5位學員的成績:");
Scanner input= newScanner(System.in);for(int i = 0; i < scores.length; i++){
scores[i]=input.nextInt();
}//計算最大值//使用max存儲擂主初始值:第一個元素為擂主
max = scores[0];//循環打擂
for(int i = 1; i < scores.length; i++){if(scores[i] >max){
max=scores[i];
}
}
System.out.println("考試成績最高分為:" +max);
}
}
---------- ?插入數值
有一個降序排列的數組,新增一個數字,也要保持降序排列
注要就是把插入的數值與數組中的值依次進行比較,找到第一個數值比他小的位置,就是他要插入的位置,然后在把他下標往后面的移動一位,
import java.util.*;public classInsert {public static voidmain(String[] args) {int[] list = new int[6]; //長度為為6的數組
list[0] = 99;
list[1] = 85;
list[2] = 82;
list[3] = 63;
list[4] = 60;int index = list.length; //保存新增成績插入位置
System.out.println("請輸入新增成績: ");
Scanner input= newScanner(System.in);int num = input.nextInt(); //輸入要插入的數據//找到新元素的插入位置
for (int i = 0; i < list.length; i++) {if (num >list[i]) {
index=i;break;
}
}//元素后移
for (int j = list.length - 1; j > index; j--) {
list[j]= list[j - 1]; //index下標開始的元素后移一個位置
}
list[index]= num;//插入數據
System.out.println("插入成績的下標是:" +index);
System.out.println("插入后的成績信息是: ");for (int k = 0; k < list.length; k++) { //循環輸出目前數組中的數據
System.out.print(list[k] + "\t");
}
}
}
----- ?統計數組中奇數和偶數的個數
packagecn.jbit.lesson3;importjava.util.Scanner;/*** 統計數組中的奇數和偶數的個數**/
public classArrayEx {public static voidmain(String[] args) {int[] array = new int[8];
Scanner input= newScanner(System.in);int count1 = 0; //記錄奇數的個數
int count2 = 0; //記錄偶數的個數//從控制臺接收8個整數,分別統計奇數和偶數的個數
for(int i=0;i
System.out.print("請輸入第"+(i+1)+"個整數:");
array[i]=input.nextInt();if(array[i]%2==0){
count1++;
}else{
count2++;
}
}
System.out.println();
System.out.println("奇數的個數是:"+count2+"。");
System.out.println("偶數的個數是:"+count1+"。");
}
}
---- ?數組倒敘復制輸出
1 packagecn.jbit.lesson3;2 /**
3 * 數組倒序復制輸出4 *@authorboge5 *6 */
7 public classArrayEx2 {8 public static voidmain(String[] args) {9 int[] array = new int[10]; //源數組
10 int[] newArray = new int[10]; //目標數組
11 for(int i=0;i
13 }14 System.out.println("原數組:");15 for(intnum:array){16 System.out.print(num+"\t");17 }18
19 System.out.println();20
21 int index = array.length-1;22
23 for(int i=0;i
27 System.out.println("新數組:");28 for(intnum:newArray){29 System.out.print(num+"\t");30 }31 }32 }
------ 去除數組中的0
/*** 去除數組中的0
**/
public classArrayEx3 {public static voidmain(String args[]){int oldArr [] = {11,31,23,54,0,0,77,90,0,5,42,71,63,79,60,53} ;int count = 0 ; //記錄數組中不為0的元素個數
for(int i = 0 ; i < oldArr.length; i++){if(oldArr[i] != 0){
count++ ; //統計個數
}
}int newArr [] = new int[count] ; //新數組//將原數組中不為0的元素保存到新數組中
int j = 0 ; //控制新數組的下標
for(int i = 0 ; i < oldArr.length; i++){if(oldArr[i] != 0){
newArr[j++] =oldArr[i] ;
}
}//輸出新數組
for(int i = 0 ; i< newArr.length ; i++){
System.out.print(newArr[i]+ "\t") ;
}
}
}
---- ?合并數組
1 public classArrayEx4 {2 public static voidmain(String args[]){3 int arrayA [] = new int[] {1,7,9,11,13,17,19} ;4 int arrayB [] = new int[] {2,4,6,8,10} ;5
6 int len = arrayA.length + arrayB.length ; //新數組的大小
7 int arrayC[] = new int[len] ; //新數組
8
9 System.arraycopy(arrayA,0,arrayC,0,arrayA.length) ; //拷貝第一個數組
10 System.arraycopy(arrayB,0,arrayC,arrayA.length,arrayB.length) ; //拷貝第二個數組
11 java.util.Arrays.sort(arrayC) ;12
13
14 for(int x = 0 ; x< arrayC.length ; x++){15 System.out.print(arrayC[x] + "、") ;16 }17 }18 }
總結
以上是生活随笔為你收集整理的java 一维数组_java基础 ---- 一维数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 试管婴儿受孕率跟季节有关系吗?
- 下一篇: 华为大数求和 java_大数乘积java