美文网首页
Java数组

Java数组

作者: e26f55e7ec23 | 来源:发表于2018-06-09 13:25 被阅读0次

中国大学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");

        }

相关文章

  • 【骚全带你学Java---九、认识java数组】

    java中数组 数组是指一组数据的集合,数组中的每个数据称为元素。在Java中,数组也是Java对象。数组中的元素...

  • JAVA 基本功秘籍

    1. Java数组与内存控制一、Java数组初始化 Java数组是静态的,即当数组被初始化之后,该数组的长度是不可...

  • Java数组

    Java数组 1.声明数组 在java中声明数组有两种形式:数组元素类型名[] 数组名;数组元素类型名 数组名 [...

  • Java知识之数组

    Java数组知识图如下: 数组基本用法 声明数组声明数组语法格式: 初始化数组Java中使用关键字new创建数组对...

  • Java学校-String类/数组

    Java StringBuffer 和 StringBuilder 类 Java 数组 声明数组变量 明白这句话p...

  • 图解Java数组的内存分配

    1. Java数组是静态的 Java是静态语言,所以Java的数组也是静态的,即:数组被初始化后,长度不可变 静态...

  • Kotlin数组

    数组在Kotlin中使用Array类来表示。下面巴拉一下Kotlin数组和Java数组的区别。Java中的数组通常...

  • java 数组

    java数组:相同类型数据的有序集合 (数组元素的数据类型必须相同) 1. java 创建数组变量 数组中已有元素...

  • 面试题总结

    1、Java中能创建Volatile数组吗? 能,Java中可以创建volatile类型数组,不过只是一个指向数组...

  • scala 2.13.1 数组 和Java List互转

    Scala数组 转 Java List List 转 Scala数组

网友评论

      本文标题:Java数组

      本文链接:https://www.haomeiwen.com/subject/xdtasftx.html