数组相关学习

一、定义:

1.定义数组格式:

(1)动态初始化:只定义数组存储数据类型和长度,不定义数组具体数据。

数据类型 数组名 = new 数据类型长度

数据类型 数组名 = new 数据类型长度

(2)静态初始化:直接给出数据。

数据类型 数组名 = {元素1,元素2,元素3,......}

二、操作:

1.获取数组长度:

(1)格式:数组名.length(注意:length不是方法,后面不加小括号)

2.索引:

(1)定义:元素在数组中的位置(编号、下标)。

3.存储元素:

(1)格式:数组名索引值 = 值

(2)手动添加数据:可使用Scanna套用循环添加;

自动随机添加数据:可使用Random套用循环添加;

注意:循环中可使条件小于数组长度array.length

3.获取元素:

(1)格式:数组名索引

4.遍历数组:

(1)for循环遍历,快捷键:数组名.fori

(2)数组操作常见问题:

a.数组索引越界异常_ArrayIndexOutOfBoundsException

b.空指针异常_NullPinterException

当一个对象为null时,再调用这个对象中的其他成员。

三、数组相关练习:

1.随机产生10个【0,100】之间的整数,统计既是3的倍数又是5的倍数,但不是7的倍数的个数:

java 复制代码
        Random rdm = new Random();
        int[] arr = new int[10];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = rdm.nextInt(101);
        }
        int count = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i]%3==0&&arr[i]%5==0&&arr[i]%7!=0){
                count++;
            }
            System.out.print(arr[i]+",");
        }
        System.out.println(count);

2.定义一个数组{1,2,3,4},以【1,2,3,4】的形式输出:

java 复制代码
        int[] arr = {1,2,3,4};
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length-1) {
                System.out.print(arr[i] + "]");
            }else {
                System.out.print(arr[i]+",");
            }
        }

3.键盘录入一个数据,给出这个数据在数组中的索引位置:

java 复制代码
        Scanner sc = new Scanner(System.in);
        int[] arr = {1,5,9,8,6,4,2,3,0};
        int i = sc.nextInt();
        int flag = 0;
        for (int j = 0; j < arr.length; j++) {
            if (i == arr[j]){
                System.out.println(j);
                flag++;
            }
        }
        if (flag == 0){
            System.out.println(-1);
        }

4.数组复制:

java 复制代码
        int[] arr1 = {1,2,3,5,8,9};
        int[] arr2 = new int[6];
        int j = 0;
        for (int i = 0; i < arr1.length; i++) {
            if (i==j) {
                arr2[j] = arr1[i];
                j++;
            }
        }
        System.out.print("[");
        for (int k = 0; k < arr2.length; k++) {
            if (k == arr2.length-1){
                System.out.print(arr2[k]+"]");
            }else {
                System.out.print(arr2[k]+",");
            }
        }

5.数组扩容,将数组{1,2,3,4,5}长度扩容到10:

java 复制代码
        int[] OldArr = {1,2,3,4,5};
        int[] NewArr = new int[10];
        for (int i = 0; i < OldArr.length; i++) {
            NewArr[i] = OldArr[i];
        }
        OldArr = NewArr;
        System.out.println(OldArr.length);
        for (int i = 0; i < OldArr.length; i++) {
            System.out.print(OldArr[i]+",");
        }

6.数组合并,将arr1{1,2,3}和arr2{4,5,6}合并成一个新数组:

java 复制代码
        int[] arr1 = {1,2,3};
        int[] arr2 = {4,5,6};
        int[] NewArr = new int[arr1.length + arr2.length];
        for (int i = 0; i < arr1.length; i++) {
            NewArr[i] = arr1[i];
        }
        int len = arr1.length;
        for (int i = 0; i < arr2.length; i++) {
            /*已经将arr1数值插入到NewArr中,所以arr2要从arr1最后一个索引位置的后一位开始*/
            NewArr[len+i] = arr2[i];
        }
        for (int i = 0; i < NewArr.length; i++) {
            System.out.print(NewArr[i]+",");
        }
相关推荐
论迹复利2 小时前
FreeRTOS 在 RISC-V 上是如何“点火“的 —— 从 main() 到第一个任务的完整链路
java·开发语言·risc-v
张宇Joaquin3 小时前
鲲鹏统一并行加速库KUPL--众核并行能力介绍
java·开发语言·网络
wixzjsh3 小时前
TCP通信与HTTP协议学习笔记:粘包、三次握手、四次挥手与C/S、B/S模型
学习·tcp/ip·http
ZhiMuZhiLing3 小时前
拓客软件学习成本实测方法论:从注册到出第一批名单要多久
学习·流量运营·用户运营
宸津-代码粉碎机3 小时前
AI攻防战升级!基于Spring AI构建Java应用自动免疫安全体系
java·大数据·开发语言·人工智能·python·安全·spring
程序员大雄学编程3 小时前
微积分46. 无穷级数四大核心性质:从理论到实践的全方位解析
python·学习·微积分·学习工具
2601_963749104 小时前
越华环保集团数字化污水治理:端边云采集架构与平台对接实现
java·大数据·架构
xcLeigh4 小时前
Go入门:整数类型的溢出与安全边界
java·安全·golang
源码宝5 小时前
SpringBoot+Vue2 诊所门诊管理系统,完整前后端源码,可直接部署上线
java·源码·his系统·门诊系统·程序代码·诊所系统·门诊his
yychen_java5 小时前
九:Text-to-SQL 智能数据查询与 Human-in-the-Loop 人机协作
java·人工智能·架构