zoukankan      html  css  js  c++  java
  • Java程序设计基础 数组-2

    今天我们继续上一节的分享。

    数组是一种容器,现代编程手段容器是一种非常重要的东西,容器简单来说就是“放东西的东西”,但这种容器有它自己的特点,比如说我们之前定义的<numbers>,它是int类型的numbers,它只能放int类型的数据如果我们放一个其他数据类型的,我们看

    它立马就会报错,类型不匹配。

    也就是说数组这种东西他有一个突出的特点就是 它里面的所有东西都是相同类型的,他只能把我确定的类型的那种东西放进里面,然后所有的都是一个类型。

    第二个特点就是一旦创建数组之后我们是不能改变大小的。

    在这个程序里面数组的大小反映在 100 这个数字上面,也就是说我在创建数组的时候我就要 new 一个 100 这么大的数组,这个事情定下来就定下来了,我没有办法说这 100 个我用了 50 个,剩下的 50 个我还给你好了,不行,做不到。

    前面让大家观察了为什么这段代码有安全漏洞,你说只能读 100 个,那我程序读读读 读101个怎么办,我也没有办法来改变它,数组的大小一旦确定遍无法被改变,动不了。

    我们定义数组的时候得这样:

    <类型>[] <名称> = new <类型>[元素个数];

    例如:

                    int[] grades = new int[20];
                    double[] averages = new double[100];

    那么在这个当中呢,元素的个数必须是整数,带小数点的不行。我们试一下

    报错了,类型不匹配,再有一个呢 元素的个数必须要给出,比如说我在这个地方不给个数,我们看一下

    不行,告诉我必须进行数组初始化造作,那我这么写行不行

    int[100] numbers = new int[100];      我们来看一下

    还是不行,语法上有错误,个数必须在new上面给出,而new的后面又必须给出个数。

    但是这个个数可以是个变量,不见得必须是个常量,比如说我们的 100 。

    我们的元素是从0开始数,a[0]-a[9],一共10个元素。

    那么这个传统呢是从C语言传来的,在C语言中编译器从0开始数呢,很多事情都会变得很方便,所以这个传统就一直这么传了下来。

    数组中的每一个元素拿出来都是一个变量,我们可以这么写 a[0] 表示数组a[]中的第一个元素。我们既可以拿来读他的值,也可以拿来作赋值。

    这就是数组。

    下面是举例的代码

    import java.util.Scanner;
    public class Average {
    
        public static void main(String[] args) {
            // TODO 自动生成的方法存根
                    Scanner in = new Scanner(System.in);
                    System.out.println("Please enter some numbers and end with a -1 input:");
                    int num = in.nextInt();
                    int[] numbers = new int[100]; 
                    double sum = 0;
                    int cnt = 0;
                    while(num != -1)
                    {
                        numbers[cnt] = num;
                        sum += num;
                        cnt++;
                        num = in.nextInt();
                    }
                    if(cnt > 0)
                    {
                        double average = sum/cnt;
                        for(int i = 0 ;i < cnt ;i++)
                        {
                            if (numbers[i] >= average)
                            {
                                System.out.println(numbers[i]);
                            }
                        }
                        System.out.println("the average is :" + average);
                    }
    
                }
            
        
    
    }
  • 相关阅读:
    Linux性能优化之CPU优化(一)
    MongoDB CPU使用较高,如何排查?
    MongoDB 安全配置
    open-falcon v0.2 监控部署记录
    有关redis相关的性能优化及内存说明
    kafka 基础知识梳理
    Java 进程占用 VIRT 虚拟内存超高的问题研究
    【nodejs】文件上传demo实现
    translate和position的比较
    setAttribute()、getAttribute()与ele[attr]与自定义属性
  • 原文地址:https://www.cnblogs.com/yuyang-gr/p/6672131.html
Copyright © 2011-2022 走看看