Java入门篇 之 数组篇

news2024/11/26 12:47:32

本篇碎碎念:这篇没有碎碎念,嘻嘻,博主个人感觉状态回来了,博主要加油,大家也要加油

今日份励志文案:纵有疾风起,人生不言弃!

冲冲冲!!!!

目录

一.数组初始化 

二.代码演示 

三.数组的遍历

 四.进一步了解数组

五.数组的拷贝与克隆 

 1.数组的拷贝

2.数组的克隆 

 

一.数组初始化 

数组只是相同类型的,用一个标识符名称封装到一起的一个对象序列或基本类型数据序列。

数组是通过方括号下标操作符 [ ] 来定义和使用的。

要定义一个数组,只需在类型名后加上一对空方括号即可:

int[] a1:

方括号也可以置于标识符后面:

int a1[];

两种格式的含义是一样的,后一种的格式符合C和C++程序员的习惯。

不过,前一种格式或许更合理,毕竟它表明类型是 一个int型数组

编译器不允许指定数组的大小,为了给数组创建相应的存储空间,必须写初始化表达式

例如:

int[] a1={1,2,3,4,5};
int[] a2;
//Java中可以将一个数组赋值给另一个数组
a2=a1;

二.代码演示 

public static void main(String[] args) {
        int[] a1={1,2,3,4,5};
        int[] a2;
        a2=a1;
        System.out.println("原来数组a1的值为:");
        for(int i=0;i<a1.length;i++){
            System.out.print("a1["+i+"]="+a1[i]+"  ");
        }
        for(int i=0;i<a2.length;i++){
            a2[i]=a2[i]+1;
        }
        System.out.println();
        System.out.println("改变后的数组为:") ;
        for(int i=0;i<a1.length;i++){
            System.out.print("a1["+i+"]="+a1[i]+"  ");
        }
    }

 看上面的代码演示: 

可以看到代码中给出了a1的初始值,但是a2却没有;a2是在后面被赋给另一个数组的。

由于a2和a1是相同数组的别名,因此通过a2所做的修改在a1中可以看到


所有数组(无论它们的元素是对象还是基本类型)都有一个固有成员,可以通过它获知数组内包含了多少个元素,但不能对其修改

这个成员就是length,Java数组计数也是从第 0 个元素开始,所所以能使用的最大下标数就是length - 1 ,一旦访问下标过界,就会出现运行时错误 ( 即异常 ) 

三.数组的遍历

1 . for循环

2 . foreach语句(int x;array)int x 为数据类型,右边为数组名

3 . toString 操作数组的一个工具类,将数组转化为字符串进行输出

可以用 数组名.length 来知道数组的长度

 public static void main2(String[] args) {
        int[] array = {1,2,3,4};
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i]+" ");
        }
        System.out.println();
        //for-each 如果将来 只是遍历程序 那么用foreach
        for (int x : array) {
            System.out.print(x+" ");
        }
        System.out.println();


        String ret = Arrays.toString(array);
        System.out.println(ret);
    }

 

 四.进一步了解数组

    public static void func2(int[] array) {
        array[0] = 99;
    }

    public static void func1(int[] array) {
        array = new int[]{11,22,33,44,55};
    }

    public static void print(int[] array) {
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i]+" ");
        }
    }

    public static void main(String[] args) {

        int[] array = {1,2,3,4};//局部变量  引用变量
        print(array);
        System.out.println();

        func1(array);
        print(array);
        System.out.println();

        func2(array);
        print(array);
        System.out.println();
    }

 

 

 

 

五.数组的拷贝与克隆 

 1.数组的拷贝

下列代码,数组array,长度为array.length,将这个数组拷贝到copy中

int[] copy = Arrays.copyOf ( array,array.length-1 );

将原来的数组array,拷贝到新的数组copy中,array.length-1这个是拷贝的长度

array的长度为3,array.length-1的长度为2,所以拷贝0~2

打印的结果为 [1,2,3]

public static void main(String[] args) {
        int[] array = {1,2,3,4};
        //拷贝 array 这个数组  ,长度为 array.length
        int[] copy = Arrays.copyOf(array,array.length-1);

        System.out.println(Arrays.toString(copy));

    }

 

 

public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        //拷贝 array 这个数组  ,新的长度为 array.length *2
        array = Arrays.copyOf(array,array.length*2);
        //array 指向了 新的数组空间
        System.out.println(Arrays.toString(array));

    }

上述代码增加数组的长度

打印结果如下:

 

2.数组的克隆 

array.clone()

 public static void main(String[] args) {
        int[] array = {1,2,3,4,5};

        int[] copy = array.clone();

        //int[] copy = array; 不是拷贝

        System.out.println(Arrays.toString(copy));

    }

 

 

注意:克隆不能控制长度,拷贝可以控制长度

 

 

如果有解释的不对或者不清晰,如果可以从评论区指出,我一定会加以修改,万分感谢

希望对你们有所帮助

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1167221.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android 13.0 启动app时设置密码锁

1.前言 在13.0的系统产品开发中,对于限制某些app的启动的功能中,在项目中的需求是在点击app启动的时候,根据包名设置密码锁,当输入正确的密码的时候来启动这个app,否则 就不能启动这个app,达到限制使用app的目的,这就需要在app启动的时候,检测app的包名,然后在app启动…

jdbc Preparestatement防止SQL注入的原理

2023-10-28T03:37:11.264132Z 2 Execute select * from users where username liulemon and password \ or \1\ 1\ 可以看到这一行&#xff0c;预编译时&#xff1f;变成了转义字符 useServerPrepStmtstrue加上这句才能预编译

FBM232 P0926GW 一个基于PC的Studio应用程序

FBM232 P0926GW 一个基于PC的Studio应用程序 告别自定义编程&#xff0c;向S88 Builder问好。它可以帮助您轻松地将泵、混合器和阀门等单个批处理设备配置为特定的协调任务&#xff0c;如灌装、加热和混合。 S88 Builder是什么&#xff1f;它包括一个基于PC的Studio应用程序&…

智慧工地管理平台+智慧工地app源码

智慧工地管理平台智慧工地app源码 &#xff08;演示自主知识产权项目应用案例&#xff09; 以施工现场风险预知和联动预控为目标&#xff0c;将智能AI、传感技术、人像识别、监控、虚拟现实、物联网、5G、大数据、互联网等新一代科技信息技术植入到建筑、机械、人员穿戴设施、场…

Python实现定时对网站进行签到

文章目录 一、步骤Reference 一、步骤 首先打开我们需要签到的网站&#xff0c;使用Chrome浏览器的F12快捷键&#xff08;或通过鼠标右键菜单“检查”&#xff09;打开浏览器的开发者工具&#xff0c;点击 Network 查看所有加载的请求。 如下方动图所示&#xff0c;这个时候我…

创建Vue实例

我们已经知道了Vue框架可以 基于数据帮助我们渲染出用户界面&#xff0c;那应该怎么做呢&#xff1f; 核心步骤&#xff08;4步&#xff09;&#xff1a; 准备容器 引包&#xff08;官网&#xff09; — 开发版本/生产版本 创建Vue实例 new Vue() 指定配置项&#xff0c;渲…

Recommender System复习(考试向)

Recommender System Review OverviewCollaborative Filtering基于用户的CF&#xff08;User CF&#xff09;基于物品的CF&#xff08;Item CF&#xff09;Similarity CalculationBias in CF Evaluation of Recommender SystemFactorization MachinesLatent factor modelLFM算法…

不必安装,快速设计数据库表结构

设计数据库架构是一项具有挑战性的任务&#xff0c;当您的应用程序不断变大时&#xff0c;它变得更加困难。 一个好的表结构设计能减少不小开发量&#xff0c;也能提升部分扩展性。 什么是数据库表结构&#xff1f; 表结构就是定义一个表的字段、类型、主键、外键、索引&#x…

Window 创建定时任务

一、打开计算机管理&#xff08;我的电脑右键管理&#xff09; 选择系统工具任务计划程序在右侧边栏&#xff08;创建基本任务&#xff09;在弹出窗口常规栏&#xff08;如下图&#xff09;填写定时任务名&#xff08;随意起自己知道什么程序即可&#xff09;、任务描述 在触发…

html将复选框变为圆形样例

html将复选框变为圆形样例 说明目录使用对勾图标实现圆形复选框原复选框html代码及默认样式取消复选框未勾选前的样式新增复选框未勾选前的样式新增复选框勾选后的样式获取复选框选中后的value值 使用CSS样式写对勾图标实现圆形复选框 说明 这里记录下用原生html实现将原复选框…

<蓝桥杯软件赛>零基础备赛20周--第4周--杂题-1

报名明年4月蓝桥杯软件赛的同学们&#xff0c;如果你是大一零基础&#xff0c;目前懵懂中&#xff0c;不知该怎么办&#xff0c;可以看看本博客系列&#xff1a;备赛20周合集 20周的完整安排请点击&#xff1a;20周计划 每周发1个博客&#xff0c;共20周&#xff08;读者可以按…

Go 多版本管理

在日常开发工作过程中&#xff0c;很多时候我们都需要在自己的机器上安装多个go版本&#xff0c;像是go1.16引入的embed&#xff0c;go1.18引入了泛型&#xff1b;又或是自己本地使用的是最新版&#xff0c;但公司的项目中使用的go1.14、go1.13甚至是更早的版本。 那么有没有既…

甲方自建ERP这事靠不靠谱?来听听读过中欧商学院的老板怎么说

李总自建ERP开发团队的失败案例&#xff0c;投入三年&#xff0c;花了五六百万&#xff0c;做出来的东西&#xff0c;远不如免费开源的Odoo软件。Odoo有强大的技术平台&#xff0c;有无穷的功能插件。李总现身说法&#xff1a;“早知道有Odoo&#xff0c;何必瞎折腾&#xff0c…

msvcr110.dll丢失的解决方法都有哪些,有效解决msvcr110.dll丢失

今天在使用电脑的时候提示一个和“msvcr110.dll丢失”有关的报错&#xff0c;出现这样的问题小编也是一脸懵&#xff0c;一下也不是知道该怎么处理了&#xff0c;于是小编去了解了一下msvcr110.dll丢失是什么情况&#xff0c;为什么会有这样的问题发生&#xff0c;同时msvcr110…

WebBits库如何使用

WebBits 是一个用于构建 Web 应用程序的 Python 库。以下是使用 WebBits 库的一般步骤&#xff1a; 安装 WebBits&#xff1a;在终端或命令提示符中运行以下命令来安装 WebBits 库&#xff1a; pip install webbits 导入 WebBits 库&#xff1a;在 Python 脚本中导入 WebBits…

一篇新闻稿的标准格式是怎样的呢?建议收藏

企业和品牌每年都需要撰写大量的新闻稿和软文进行投放&#xff0c;优质的新闻稿件可以给品牌带来源源不断的用户流量&#xff0c;新闻稿要按照标准格式进行创作&#xff0c;一篇新闻稿的标准格式是怎样的呢? 接下来伯乐网络传媒就来给大家分享一下。 新闻稿的结构和排版是新闻…

快速了解:什么是优化问题

1. 定义 数学优化问题是&#xff1a;在给定约束条件下&#xff0c;找到一个目标函数的最优解&#xff08;最大值或最小值&#xff09;。 2. 快速get理解 初学者对优化技术陌生的话&#xff0c;可以把 “求解优化问题” 理解为 “解一个不等式方程组”&#xff0c;解方程的。…

[PyTorch][chapter 59][强化学习-2-有模型学习]

前言&#xff1a; 在已知模型的环境里面学习,称为有模型学习&#xff08;model-based learning&#xff09;. 此刻,下列参数是已知的&#xff1a; : 在状态x 下面,执行动作a ,转移到状态 的概率 : 在状态x 下面,执行动作a ,转移到 的奖赏 有模型强化学习的应用案例 …

儿童玩具跨境电商/TEMU平台要求北美CPC认证欧洲CE认证

儿童玩具跨境电商/TEMU平台要求北美CPC认证欧洲CE认证 最近Temu严格抽查一份关于儿童用品合规的通知。通知指出&#xff0c;为了保障Temu平台消费者的合法权益&#xff0c;以及保障儿童类商品在目的国的正常销售及合规要求&#xff0c;对于以12岁及以下儿童为主要使用对象的产…

智信SMS客户端操作手册

登录系统 登录前需查看用户协议输入账号和密码&#xff0c;点击登录即可 首页介绍 登录成功之后&#xff0c;进入操作页面。 操作页面包括&#xff1a;设置、导入手机号、发送短信三大块功能。 如图&#xff1a; 导入手机号 点击首页中的导入按钮&#xff0c;即可导入手机…