IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 【零基础学Java】—数组(五) -> 正文阅读

[数据结构与算法]【零基础学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要笑着学👏👏👏👏

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-04-07 22:56:50  更:2022-04-07 22:56:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 9:42:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码