【零基础学Java】—数组(五)

简介: 【零基础学Java】—数组(五)

🐱‍🏍 一、Java的内存划分

二、🐱‍🏍一个数组的内存图

/**
 * @author :CaiCai
 * @date : 2022/4/5 11:03
 */
public class Demo05Array {
    public static void main(String[] args) {
        //动态初始化数组
       int[] array=new int[3];
        System.out.println(array);//地址值
        System.out.println(array[0]);//0
        System.out.println(array[1]);//0
        System.out.println(array[2]);//0
        //改变数组当前的元素
        array[1]=10;
        array[2]=20;
        System.out.println(array[0]);//0
        System.out.println(array[1]);//10
        System.out.println(array[2]);//20
    }
 }

三、🐱‍🏍两个数组的内存图

/**
 * @author :CaiCai
 * @date : 2022/4/5 11:03
 */
public class Demo05Array {
    public static void main(String[] args) {
        //动态初始化数组
       int[] array=new int[3];
       System.out.println(array);//地址值
        System.out.println(array[0]);//0
        System.out.println(array[1]);//0
        System.out.println(array[2]);//0
        //改变数组当前的元素
        array[1]=10;
        array[2]=20;
        System.out.println(array[0]);//0
        System.out.println(array[1]);//10
        System.out.println(array[2]);//20
        System.out.println("==================");
        //动态初始化数组
        int[] array1=new int[3];
        System.out.println(array1);//地址值
        System.out.println(array1[0]);//0
        System.out.println(array1[1]);//0
        System.out.println(array1[2]);//0
        //改变数组当前的元素
        array1[1]=100;
        array1[2]=200;
        System.out.println(array1[0]);//0
        System.out.println(array1[1]);//10
        System.out.println(array1[2]);//20
    }
            }

四、🐱‍🏍两个引用指向同一个数组

五、🐱‍🏍数组索引越界异常

  • 数组的索引编号从0开始,一直到数组的长度减1
  • 如果访问数组元素的时候,索引的编号不存在,那么将会发生数组索引越界异常(ArrayIndexOutOfBoundsException)
  • 原因:索引编号写错了
  • 解决办法:修改成为存在的正确索引
/**
 * @author :CaiCai
 * @date : 2022/4/5 11:36
 */
/*
数组的额缩影从0开始,一直到数组的长度减1
如果访问数组元素的时候,索引的编号不存在,那么将会发生数组索引越界异常ArrayIndexOutOfBoundsException
原因:索引编号写错了
解决办法:修改成为存在的正确索引
 */
public class Demo06 {
    public static void main(String[] args) {
        int[] array={15,25,35};
        System.out.println(array[0]);
        System.out.println(array[1]);
        System.out.println(array[2]);
        //错误写法并不存在3号元素所以发生异常
        System.out.println(array[3]);//ArrayIndexOutOfBoundsException
    }
}

六、🐱‍🏍空指针异常

  • 所有的引用类型的变量都可以赋值为一个null值,但是代表其中什么都没有
  • 如果只是赋值了一个null 没有进行new创建那么将会发生空指针异常NullPointerException
  • 原因:忘记new
  • 解决办法:补上new
package Project45;
/**
 * @author :CaiCai
 * @date : 2022/4/5 11:46
 */
/*
      所有的引用类型的变量都可以赋值为一个null值,但是代表其中什么都没有
      如果只是赋值了一个null 没有进行new创建那么将会发生空指针异常NullPointerException
      原因:忘记new
      解决办法:补上new
 */
public class Demo07 {
    public static void main(String[] args) {
        int[] array=null;
       // array=new int[3];
        System.out.println(array[0]);//NullPointerException
    }
}

🐱‍🏍七、获取数组的长度

  • 数组名称.length
  • 这将会的到一个int数字,代表数组的长度
  • 数组一旦创建,程序运行期间,长度不可改变
/**
 * @author :CaiCai
 * @date : 2022/4/5 11:54
 */
/*
如何获取数组的长度
数组名称.length
这将会的到一个int数字,代表数组的长度
数组一旦创建,程序运行期间,长度不可改变
 */
public class Demo08 {
    public static void main(String[] args) {
        int[] arrayA=new int[3];
        int[] arrayB={10,20,30,40,7,8};
        int len=arrayB.length;
        System.out.println(len);
        System.out.println(arrayA);
        System.out.println("===============");
        int[] arrayC=new int[3];
        System.out.println(arrayC.length);//3
        arrayC=new int[5];
        System.out.println(arrayC.length);//5
    }
}

🐱‍🏍八、遍历数组

遍历数组:说的就是对数组当中的每一个元素挨个处理,默认处理的方式是打印输出

package Project45;
/**
 * @author :CaiCai
 * @date : 2022/4/5 12:58
 */
/*
遍历数组:说的就是对数组当中的每一个元素挨个处理,默认处理的方式是打印输出
 */
public class Dem09 {
    public static void main(String[] args) {
        int[] array={15,20,35,50,90};
        //使用 for循环
        for (int i = 0; i <array.length ; i++) {
            System.out.println(array[i]);
        }

🧨求数组元素当中的最大值

public class Demo10 {
    public static void main(String[] args) {
        int[] array={10,30,20,21,55,70};
        int max=array[0];
        for(int i=1;i<array.length;i++){
            if(array[i]>max){
                max=array[i];
            }
        }
        System.out.println("最大值是:"+max);
    }
}

🧨求数组元素当中的最小值

public class Demo11 {
    public static void main(String[] args) {
        //求出数组当中的最小值
         int[] array={20,60,50,32,11,9,5};
         int min=array[0];
         for(int i=1;i<array.length;i++){
             if(array[i]<min){
                 min=array[i];
             }
         }
         System.out.println("最小值是:"+min);
    }
}

🐱‍🏍九、数组元素反转

数组元素的反转,其实就是对称位置的交换

/**
 * @author :CaiCai
 * @date : 2022/4/5 13:17
 */
/*
 数组的反转
 本来的样子:[1,2,3,4]
 反转的样子:[4,3,2,1]
 要求不能使用新数组,就使用原来的唯一一个数组
 */
public class Demo12 {
    public static void main(String[] args) {
        int[] array={10,20,30,40,50};
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }
        System.out.println("=============");
for(int min=0,max=array.length-1;min<max;min++,max--){
    int temp=array[min];
    array[min]=array[max];
    array[max]=temp;
}
//再次打印遍历输出数组后来的样子
        for(int i=0;i<array.length;i++){
    System.out.println(array[i]);
        }
    }
}

Java要笑着学👏👏👏👏


相关文章
|
2月前
|
存储 Java
Java数组07:稀疏数组
【8月更文挑战第23天】
28 2
|
2月前
|
Java
|
8天前
|
存储 安全 Java
Java数组(Arrays)详解
Java 中的数组是一种用于存储固定数量同类型数据的高效数据结构,支持连续内存存储和随机访问。数组可以声明并初始化,通过索引访问和修改元素,获取长度,使用循环遍历,支持多维形式,并可通过 `Arrays` 类的方法进行复制和排序。数组具有固定大小和类型安全的特点,但需注意越界等问题。灵活运用数组能显著提升编程效率。
|
21天前
|
存储 Java 数据处理
Java 数组的高级用法
在 Java 中,数组不仅可以存储同类型的数据,还支持多种高级用法,如多维数组(常用于矩阵)、动态创建数组、克隆数组、使用 `java.util.Arrays` 进行排序和搜索、与集合相互转换、增强 for 循环遍历、匿名数组传递以及利用 `Arrays.equals()` 比较数组内容。这些技巧能提升代码的灵活性和可读性,适用于更复杂的数据处理场景。
|
22天前
|
存储 Java
java的Excel导出,数组与业务字典匹配并去掉最后一个逗号
java的Excel导出,数组与业务字典匹配并去掉最后一个逗号
37 2
|
13天前
|
存储 Java
java数据结构,线性表顺序存储(数组)的实现
文章介绍了Java中线性表顺序存储(数组)的实现。线性表是数据结构的一种,它使用数组来实现。文章详细描述了线性表的基本操作,如增加、查找、删除、修改元素,以及其他操作如遍历、清空、求长度等。同时,提供了完整的Java代码实现,包括MyList接口和MyLinearList实现类。通过main函数的测试代码,展示了如何使用这些方法操作线性表。
|
2月前
|
Java
Java数组的应用场景
Java数组的应用场景
29 1
|
2月前
|
存储 机器学习/深度学习 Java
Java数组
Java数组
27 1
|
2月前
|
存储 Java
如何在 Java 中打印字符串数组列表
【8月更文挑战第23天】
31 2
|
2月前
|
存储 Java API