中國大學Mooc學習 5.1
1.數組遍歷
1.for遍歷
int[] a = {1, 2, 45,6545,32423,3,4,5,6};
for (int s:a)
{
System.out.println(s);
}
等價于:
for (int i =0;i<a.length;i++){
System.out.print(a[i]);
}
2.java數組小實例
寫一個程序,輸入數量不確定的【0,9】范圍內的證書,統計每一種數字出現的次數,輸入-1表示結束
System.out.print("請輸入一個數:");
Scanner in = new Scanner(System.in);
int max;
int[] num = new int[100];
int x;//盛放輸入數據
x = in.nextInt();//先賦給x一個值
max = x;
//將輸入值賦給數組
for (int i=0;x!=-1;i++){
if (x>max)
max = x;//求的輸入最大值,在創立一個數組程度為最大值的數組,以統計出現個數
num[i] = x;
x = in.nextInt();//賦給x下一個值
}
int[] count = new int[max+1];
for (int i=0;i<num.length;i++){
count[num[i]]++;
}
for (int i=0;i<count.length;i++){
System.out.print(i+":");
System.out.println(count[i]);
}
這種想法是從《算法珠璣》中看到的
再次修改
System.out.print("請輸入一個數:");
Scanner in = new Scanner(System.in);
int max;//計數
int[] num = new int[100];
//初始值全部賦值為-1,未來在最后一部過濾
for (int i=0;i<num.length;i++){
num[i] = -1;
}
int x;//盛放輸入數據
x = in.nextInt();//先賦給x一個值
max = x;
//將輸入值賦給數組
for (int i=0;x!=-1;i++){
if (x>max)
max = x;//求的輸入最大值,在創立一個數組程度為最大值的數組,以統計出現個數
num[i] = x;
x = in.nextInt();//賦給x下一個值
}
int[] count = new int[max+1];
// for (int i=0;i<count.length;i++){
// count[num[i]]=0;//將有值的全部賦值為0,以便可以正確計數
// }
for (int i=0;i<num.length;i++){
if (num[i]==-1){
// System.out.println("contiune OK");
continue;
}
count[num[i]]++;//計數
}
System.out.println("計數 OK");
for (int i=0;i<count.length;i++){
if (count[i]==0){
continue;//去除計數值為0的數組
}
System.out.print(i+":");
System.out.print(count[i]+" ");
}
輸出結果:
請輸入一個數:1 2 3 4 5 6 1 1 1 0 0 -1
計數 OK
0:2 1:4 2:1 3:1 4:1 5:1 6:1
請輸入一個數:1 2 3 7 89 76 -1
計數 OK
1:1 2:1 3:1 7:1 76:1 89:1
再次再次修改
System.out.print("請輸入一個數:");
Scanner in = new Scanner(System.in);
int max;//計數
int[] num = new int[100];
int x;//盛放輸入數據
x = in.nextInt();//先賦給x一個值
max = x;
//將輸入值賦給數組
for (int i=0;x!=-1;i++){
num[x]++;
x = in.nextInt();//賦給x下一個值
}
for (int i=0;i<num.length;i++)
{
if (num[i]==0){
continue;
}
System.out.print(i+":"+num[i]+" ");
}
輸出結果:
請輸入一個數:1 2 3 4 5 6 1 1 1 0 0 -1
0:2 1:4 2:1 3:1 4:1 5:1 6:1
算法的重要性!
2.foreach
int[] a = {1, 2, 45,6545,32423,3,4,5,6};
for (int s:a)
{
System.out.println(s);
}
2.二維數組
1.二維數組賦值
for (int i=0;i<num.length;i++){
for (int j =0;j<num[i].length;j++){
num[i][j] = rand.nextInt(10);
System.out.print(num[i][j]+" ");
}
2.二維數組遍歷
方法一:
for (int i=0;i<num.length;i++){
for (int j =0;j<num[i].length;j++){
System.out.print(num[i][j]+" ");
}
方法二:
for (int[] s:num){
for (int i:s){
System.out.print(i+" ");
}
System.out.println("\n");
}
int[][] num = new int[5][6];
//random number
Random rand = new Random(10);
for (int i=0;i<num.length;i++){
for (int j =0;j<num[i].length;j++){
num[i][j] = rand.nextInt(10);
System.out.print(num[i][j]+" ");
}
System.out.println("\n");
}
System.out.println("-----------------------------\n" +
"");
for (int[] s:num){
for (int i:s){
System.out.print(i+" ");
}
System.out.println("\n");
}