9.Java数组知识大全(上)

简介: 9.Java数组知识大全

前言

一、数组介绍

二、数组的定义域静态初始化

public class test8 {
    public static void main(String[] args) {
        //格式
        //静态初始化
        //完整格式
        //数据类型 [] 数组名=new 数据类型[]{元素1,元素2...};
        //简化格式
        //数据类型 [] 数组名={元素1,元素2...};
        //需求1:定义数组存储5个学生的年龄
        int[] arr1=new int[]{11,12,13,14};
        int[] arr2={11,12,13,14};
        //需求2:定义数组存储3个学生的姓名
        String[] arr3=new String[]{"zhangsan","lisi","wangwu"};
        String[] arr4={"zhangsan","lisi","wangwu"};
        //需求3:定义数组存储4个学生的身高
        double[] arr5=new double[]{1.93,1.65,1.68,1.71};
        double[] arr6={1.93,1.65,1.68,1.71};
    }
}

三、数组元素访问

数组地址中的小拓展:

解释一下地址值的格式含义

[: 表示当前是一个数组

D: 表示当前数组里面的元素都是double类型的

I: 表示当前数组里面的元素都是int类型的

@: 表示一个间隔符号(固定格式)

776ec8df才是数组真正的地址值(十六进制)

平时我们习惯吧这个整体叫做数组的地址值

public class test8 {
    public static void main(String[] args) {
        //格式
        //静态初始化
        //完整格式
        //数据类型 [] 数组名=new 数据类型[]{元素1,元素2...};
        //简化格式
        //数据类型 [] 数组名={元素1,元素2...};
        //需求1:定义数组存储5个学生的年龄
        int[] arr1=new int[]{11,12,13,14};
        System.out.println(arr1);
//        int[] arr2={11,12,13,14};
//
//        //需求2:定义数组存储3个学生的姓名
//        String[] arr3=new String[]{"zhangsan","lisi","wangwu"};
//        String[] arr4={"zhangsan","lisi","wangwu"};
//
//        //需求3:定义数组存储4个学生的身高
//        double[] arr5=new double[]{1.93,1.65,1.68,1.71};
//        double[] arr6={1.93,1.65,1.68,1.71};
        /*扩展:
        解释一下地址值的格式含义
        [: 表示当前是一个数组
        D: 表示当前数组里面的元素都是double类型的
        I: 表示当前数组里面的元素都是int类型的
        @: 表示一个间隔符号(固定格式)
        776ec8df才是数组真正的地址值(十六进制)
        平时我们习惯吧这个整体叫做数组的地址值
         */
    }
}

四、数组遍历

1.获取数组里面的元素

2.把数据存储到数组中

public class test9 {
    public static void main(String[] args) {
        /*利用索引对数组中的元素进行访问
        1.获取数组里面的元素
        格式: 数组名[索引]
         */
        int[] arr={1,2,3,4};
        /*获取数组里面的第一个元素
        其实就是0所以上对应的元素
        int number=arr[0];
        System.out.println(number);//1
        获取数组中1索引上对应的数据,并直接打印出来
        System.out.println(arr[1]);//2
         */
        //2.把数据存储到数组中
        //格式: 数组名[索引]=具体数据/变量;
        //细节:一旦覆盖之后,原来的数据就不存在了
        arr[0]=100;
        System.out.println(arr[0]);
    }
}

3.遍历数组的最快方式

public class test10 {
    public static void main(String[] args) {
        //1.定义数组
        int arr[]={1,2,3,4,5};
        //2.获取数组里面所有的元素
        //格式:  数组名[索引]
        /*
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);
        System.out.println(arr[3]);
        System.out.println(arr[4]);
         */
        //利用循环改进代码
        //开始条件:0
        //结束条件:数组的长度-1(最大索引)
        //但是当原始数组里面的元素过多,数量不便于数出时,5的位置处该写什么呢?
        /*for (int i = 0; i < 5; i++) {
            //i:0,1,2,3,4
            System.out.println(arr[i]);
        }*/
        //在Java当中,关于数组的一个长度属性,length
        //调用方式:  数组名.length
        for (int i = 0; i < arr.length; i++) {
            //i:0,1,2,3,4
            System.out.println(arr[i]);
        }
        //扩展:
        //自动的快速生成数组的遍历方式
        //idea提供的
        //数组名.fori
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
}

4.遍历数组并求和

public class test11 {
    public static void main(String[] args) {
        /*
        定义一个数组,存储1,2,3,4,5
        遍历数组得到每一个元素,求数组里面所有的数据和
         */
        //分析
        //1.定义一个数组并添加数据
        int[] arr={1,2,3,4,5};
        //求和变量
        int sum=0;
        //2.遍历数组得到一个数据,累加求和
        for (int i = 0; i < arr.length; i++) {
            //i 依次表示数组里面的每一个索引
            //arr[i] 依次表示数组里面的每一个元素
            sum=sum+arr[i];
        }
        //当循环结束之后,sum的值就是累加之后的结果
        System.out.println(sum);
    }
}

5.统计个数

import javax.imageio.metadata.IIOMetadataFormatImpl;
public class test12 {
    /*
    定义一个数组存储1,2,3,4,5,6,7,8,9,10
    遍历数组的到每一个元素,通技术组里面一共有多少能被3整除的数字
     */
    public static void main(String[] args) {
        //分析:
        //1.定义一个数组,存储1,2,3,4,5,6,7,8,9,10
        int[] arr={1,2,3,4,5,6,7,8,9,10};
        //定义一个变量,用来统计次数
        int count=0;
        //2.遍历数组得到每一个元素
        for (int i = 0; i < arr.length; i++) {
            //i 表示数组里面的每一个索引
            //arr[i] 表示数组里面的每一个元素
            //3.判断当前元素是否为3的倍数,如果是的话,统计变量自增一次
            if (arr[i] % 3 == 0) {
                count++;
            }
        }
        System.out.println("数组中能被3整除的数字有"+count+"个");
    }
}

6.变化数据

public class test13 {
    public static void main(String[] args) {
        /*
        定义一个数组存储1,2,3,4,5,6,7,8,9,10
        遍历得到每一个元素
        要求:
        如果是奇数,将当前数字扩大两倍
        如果是偶数,将当前数字变为原来的1/2
         */
        //分析
        //1.定义一个数组存储数据
        int[] arr={1,2,3,4,5,6,7,8,9,10};
        //2.遍历数组得到每一个元素
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]%2==0){
                arr[i]=arr[i]/2;
            }else {
                arr[i]=arr[i]*2;
            }
        }
        //遍历数组
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
}

五、数组动态初始化

1.数组默认初始化值的规律

整数类型:默认初始化值0
    小数类型:默认初始化值0.0
    字符类型:默认初始化值'\u0000' 空格
    布尔类型:默认初始化值 false
    引用数据类型:默认初始化值 null
public class test14 {
    public static void main(String[] args) {
        /*
        定义一个数组,用来存班级中50个学生的姓名
        姓名未知,等学生报名之后,再进行添加
         */
        //格式:
        //数据类型[] 数组名=new 数组类型[数组的长度]
        //在创建的时候,由我们自己指定数组的长度,由虚拟机给出默认的初始化值
        String[] arr=new String[50];
        //添加学生
        arr[0]="zhangsan";
        arr[1]="lisi";
        //获取
        System.out.println(arr[0]);//zhangsan
        System.out.println(arr[1]);//lisi
        System.out.println(arr[2]);//打印出来的是默认初始化值null
        //数组默认初始化值的规律
        //整数类型:默认初始化值0
        //小数类型:默认初始化值0.0
        //字符类型:默认初始化值'\u0000' 空格
        //布尔类型:默认初始化值 false
        //引用数据类型:默认初始化值 null
        int[] arr2=new int[3];
        System.out.println(arr2[0]);//0
        System.out.println(arr2[1]);//0
        System.out.println(arr2[2]);//0
    }
}

2.数组动态初始化和静态初始化的区别

六、数组内存图

1.Java内存分配

2.数组的内存图

相关文章
|
24天前
|
存储 缓存 算法
Java 数组
【10月更文挑战第19天】Java 数组是一种非常实用的数据结构,它为我们提供了一种简单而有效的方式来存储和管理数据。通过合理地使用数组,我们能够提高程序的运行效率和代码的可读性。更加深入地了解和掌握 Java 数组的特性和应用,为我们的编程之旅增添更多的精彩。
31 4
|
24天前
|
存储 缓存 算法
提高 Java 数组性能的方法
【10月更文挑战第19天】深入探讨了提高 Java 数组性能的多种方法。通过合理运用这些策略,我们可以在处理数组时获得更好的性能表现,提升程序的运行效率。
21 2
|
1月前
|
存储 Java
Java“(array) <X> Not Initialized” (数组未初始化)错误解决
在Java中,遇到“(array) &lt;X&gt; Not Initialized”(数组未初始化)错误时,表示数组变量已被声明但尚未初始化。解决方法是在使用数组之前,通过指定数组的大小和类型来初始化数组,例如:`int[] arr = new int[5];` 或 `String[] strArr = new String[10];`。
|
1月前
|
存储 Java
什么是带有示例的 Java 中的交错数组?
什么是带有示例的 Java 中的交错数组?
43 9
|
1月前
|
Java
Java数组动态扩容和动态缩减
Java数组动态扩容和动态缩减
22 3
|
1月前
|
存储 算法 Java
Java一分钟之-数组的创建与遍历
数组作为Java中存储和操作一组相同类型数据的基本结构,其创建和遍历是编程基础中的基础。通过不同的创建方式,可以根据实际需求灵活地初始化数组。而选择合适的遍历方法,则可以提高代码的可读性和效率。掌握这些基本技能,对于深入学习Java乃至其他编程语言的数据结构和算法都是至关重要的。
26 6
|
1月前
|
存储 Java 程序员
【一步一步了解Java系列】:何为数组,何为引用类型
【一步一步了解Java系列】:何为数组,何为引用类型
23 1
|
1月前
|
存储 XML Java
如何在 Java 中将常见文档转换为 PNG 图像数组
如何在 Java 中将常见文档转换为 PNG 图像数组
14 1
|
1月前
|
存储 安全 Java
Java数组(Arrays)详解
Java 中的数组是一种用于存储固定数量同类型数据的高效数据结构,支持连续内存存储和随机访问。数组可以声明并初始化,通过索引访问和修改元素,获取长度,使用循环遍历,支持多维形式,并可通过 `Arrays` 类的方法进行复制和排序。数组具有固定大小和类型安全的特点,但需注意越界等问题。灵活运用数组能显著提升编程效率。
|
1月前
|
存储 算法 Java
带你学习java的数组军队列
带你学习java的数组军队列
35 0