Java学习day6数组


---恢复内容开始---

Java数组

    Java 语言中提供的数组是用来存储固定大小的同类型元素。你可以声明一个数组变量,如 numbers[100] 来代替直接声明 100 个独立变量 number0,number1,....,number99。

一、一维数组

    声明数组变量(必需先声明后使用)

语法:

dataType[] arrayRefVar;

一维数组的初始化

    动态初始化:数组声明且为数组元素分配空间与赋值的操作分开进行,例如

int[] arr = new int[3];//声明一个能放3个int类型数据的数组
arr[0] = 9;
arr[1] = 8;
arr[2] = 7;

    静态初始化:在定义数组电的同时就为数组元素分配空间并赋值。例如

int[] a = new int[]{0,1,2};//声明了一个存放了0,1,2这三个数的数组

数组元素的引用

    1.定义并用运算符new为之分配空间后,才可以引用数组中的每个元素

    2.数组元素的引用方式: 数组名[数组元素下标]

      数组元素下标可以是整型常量或整型表达式,如a[0], b[i], c[6*i];

      数组元素下标从0开始;

      长度为n的数组合法下标取值范围为:0——n-1;如int[] a =new int[3];可引用的数组元素为a[0]、a[1]、a[2]

    3.每个数组都有一个属性length指明它的长度,例如:a.length指明数组a的长度(即元素个数)

      数组一旦初始化,其长度是不可变的

---恢复内容结束---

Java数组

    Java 语言中提供的数组是用来存储固定大小的同类型元素。你可以声明一个数组变量,如 numbers[100] 来代替直接声明 100 个独立变量 number0,number1,....,number99。

一、一维数组

    声明数组变量(必需先声明后使用)

语法:

dataType[] arrayRefVar;

一维数组的初始化

    动态初始化:数组声明且为数组元素分配空间与赋值的操作分开进行,例如

int[] arr = new int[3];//声明一个能放3个int类型数据的数组
arr[0] = 9;
arr[1] = 8;
arr[2] = 7;

    静态初始化:在定义数组电的同时就为数组元素分配空间并赋值。例如

int[] a = new int[]{0,1,2};//声明了一个存放了0,1,2这三个数的数组

数组元素的引用

    1.定义并用运算符new为之分配空间后,才可以引用数组中的每个元素

    2.数组元素的引用方式: 数组名[数组元素下标]

      数组元素下标可以是整型常量或整型表达式,如a[0], b[i], c[6*i];

      数组元素下标从0开始;

      长度为n的数组合法下标取值范围为:0——n-1;如int[] a =new int[3];可引用的数组元素为a[0]、a[1]、a[2]

    3.每个数组都有一个属性length指明它的长度,例如:a.length指明数组a的长度(即元素个数)

      数组一旦初始化,其长度是不可变的

数组元素的默认初始化

    数组是引用类型,它的元素相当于类的成员变量,因此数组一经分配空间,其中的每个元素也被按照成员变量同样的方式被隐式初始化,数组的元素会有默认值,数字类型的默认值为0,对象的默认类型为null,例如:.

public class Test{
        public static void main(String args[]){
              int[] a = new int[5];
              System.out.println(a[3]);//a[3]有默认值且默认值为0
      }
}    

二、多维数组

    多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组,例如:

String[][] str = new String[3][4];

    格式一(动态初始化):int[][] arr = new int[3][2];

        定义了名称为arr的二维数组,二维数组中有3个一维数组,每一个一维数组中有2个元素,这3个一维数组的名称分别为arr[0],arr[1],arr[2],如果要给第一个一维数组1脚标位赋值78,写法是arr[0][1] = 78

    格式二(动态初始化):int[][] arr = new int[3][]

        二维数组中有3个一维数组,每一个数组都是默认初始化值null(区别于格式一),可以对这3个一维数组分别进行初始化,例如arr[0] = new int[9];arr[1] = new int[8];arr[2] = new int[7];

    格式三(静态初始化):int[][] arr = new int[][]{{1,2,3},{4,5,6},{7,8,9,10}};

        定义了一个名称为arr的二维数组,二维数组中有3个一维数组,而且每一个一维数组中具体元素也都已初始化,分别为arr[0] = {1,2,3};arr[0] = {4,5,6};arr[0] = {7,8,9,10};

    注意:1.注意特殊写法情况:int[] x,y[]; x是一维数组,y是二维数组。

       2.Java中多维数组不必都是规矩矩阵方式

实例1:获取arr数组中所有元素的和,使用for的嵌套循环即可

public class Test{
        public static void main(String args[]){
        int[][] arr = new int[][]{
                 {1,2,3},
                 {4,5},
                 {6,7,8,9},
                 };
        int len = arr.length;//数组的一维长度
        int res = 0;
        for(int i = 0; i < arr.length; i++){
            for(int j = 0; j < arr[i].length; j++){
                res += arr[i][j];
            }
        }
    System.out.println(res);
    }
} 

输出结果为:45

数组的常见算法:1.求数组元素的最大值、最小值、总和、平均数

        2.数组的复制、反转

        3.数组元素的排序(冒泡排序为例)

public class Test{
        public static void main(String args[]){
    int[] arr = new int[]{4,2,7,1,3,5};
    //最大值
    int max = arr[0];//假设arr[0]是目前的最大值
    for(int i = 0; i < arr.length; i++){
        if(max < arr[i]){
            max = arr[i];//存放目前的最大值
            }    
            }
    System.out.println("max:" + max);

    
    //最小值
    int min = arr[0];//假设arr[0]是目前的最小值
    for(int i = 0; i < arr.length; i++){
        if(min > arr[i]){
            min = arr[i];//存放目前的最小值
            }    
            }
    System.out.println("min:" + min);

    
    //总和、平均数
    int res = 0;
    for(int i = 0;i < arr.length; i++){
        res += arr[i];
        }
    System.out.println("res:" + res);
    System.out.println("avg:" + res / arr.length);
    } 
} 

输出结果为:

优质内容筛选与推荐>>
1、python + mysql 实现创建数据表
2、bat 杂记
3、前端比较好的学习资料(包括js和css)以及 最全前端资源汇集
4、Silverlight中使用Bindin方式绑定两个控件之间的值
5、ajax的post提交参数长度超出限制的解决办法


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn