中国大学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");
}
网友评论