Java基础编程之数组的算法及使用

Java基础编程之数组的算法及使用

知识点1:数组及一维数组

1.数组的理解

一、数组的理解
 * 1. 数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,
 *    并通过编号的方式对这些数据进行统一管理。
 * 2. 数组相关的名称:
 *   > 数组的元素
 *   > 数组名
 *   > 数组的角标、下标、下角标
 *   > 数组的长度
 
 * 3. 数组一旦初始化(不管是静态初始化,还是动态初始化),其长度就是确定的。
 *    数组一旦初始化(不管是静态初始化,还是动态初始化),其长度就是不可变的。

在这里插入图片描述

2. 一维数组的使用

public static void main(String[] args) {
   
//        3.1 数组的声明和初始化
        //格式:数据类型 变量名  = 变量值
        int num = 10;
        String str = "hello";
        //声明
        String[] foods;
        //初始化
        foods = new String[]{
   "拌海蜇","龙须菜","炝冬笋"};
        //声明并初始化
        //静态初始化:数组变量的赋值操作与数组元素的赋值操作同时进行。
        String[] names = new String[]{
   "李金鑫","刘志引","徐得三","武晋守"};
        //可以简写为:String[] names = {"李金鑫","刘志引","徐得三","武晋守"};//类型推断

        //动态初始化:数组变量的赋值操作与数组元素的赋值操作分开进行。
        double[] prices = new double[5];

        //错误的
//        int[] arr = new int[5]{1,2,3,4,5};
//        int[5] arr = new int[5];

//        3.2 如何调用数组的元素:通过角标的方式进行调用
        //角标从 0 开始,到数组的长度 - 1结束。
        prices[0] = 12.3;
        prices[1] = 23.4;
//        prices[5] = 34.5;//报ArrayIndexOutOfBoundsException异常。
        System.out.println(prices[0]);
        System.out.println(names[0]);

//        3.3 如何获取数组的长度
        //属性:length
        System.out.println(prices.length);//5
        System.out.println(names.length);//4

//        3.4 如何遍历数组元素
        for(int i = 0;i < names.length;i++){
   
            System.out.println(names[i]);

        }
 /* 3. 一维数组的使用
 * // 3.5 数组元素的默认初始化值 (以动态初始化为例)
 *     整型数组,元素的默认初始化值为:0
 *     浮点型数组,元素的默认初始化值为:0.0
 *     字符型数组,元素的默认初始化值为:0
 *     boolean型数组,元素的默认初始化值为:false
 *
 *     引用数组类型数组,元素的默认初始化值为:null
 */
public class ArrayTest1 {
   
   public static void main(String[] args) {
   
       // 3.5 数组元素的默认初始化值
       double[] prices = new double[5];
       prices[0] = 12.3;
       prices[1] = 24.4;
       System.out.println(prices[2]);//0.0

       int[] arr = new int[]{
   1,2,3,4};
       System.out.println(arr[0]);//1

       float[] arr1 = new float[10];
       System.out.println(arr1[4]);

       System.out.println("###################");
       long[] arr2 = new long[10];
       System.out.println(arr2[0]);

       char[] arr3 = new char[10];
       System.out.println("----" + arr3[0] + "*****");

       if(arr3[0] == 0){
   
           System.out.println("你好!");
       }

       if(arr3[0] == ' '){
   
           System.out.println("萨瓦迪卡!");
       }

       if(arr3[0] == '0'){
   
           System.out.println("hi!");
       }

       System.out.println("####################");
       boolean[] arr4 = new boolean[10];
       System.out.println(arr4[0]);

       String[] arr5 = new String[10];
       System.out.println(arr5[1]);//null

      
   }
}
  • 内存解析

    • jvm的内存结构主要部分

在这里插入图片描述

  • 一维数组的内存解析举例

在这里插入图片描述

知识点2:二维数组的使用

 *  数组,属于引用数据类型。
 *  数组的元素,可以是基本数据类型,或引用数据类型。
 *  > 数组A的元素,还可以是数组B。则构成了二维数组
 
 
 对于二维数组的理解,我们可以看成是一维数组array1又作为另一个一维数组array2的元素而存在。其实,从数组底层的运行机制来看,其实没有多维数组。

public class ArrayTest {
   
    public static void main(String[] args) {
   
        //  1. 二维数组的声明和初始化

        //静态初始化
        int[][] arr = new int[][]{
   {
   1,2,3},{
   4,5},{
   6,7,8},{
   9,8,6,4}};
        String[][] arr1 = new String[][]{
   {
   "陈伟霆","刘诗诗"},{
   "周笔畅","鹿晗","张艺兴"}};

//    int[][][] arr2 = new int[][][]{
   {
   {1,2,3},{3,4},{4,5}},{
   {3,4},{4,5,6,6}}};
        //动态初始化1
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值