Java入门篇 之 数组篇

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

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

冲冲冲!!!!

目录

一.数组初始化

二.代码演示

三.数组的遍历

四.进一步了解数组

五.数组的拷贝与克隆

1.数组的拷贝

2.数组的克隆

一.数组初始化

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

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

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

java 复制代码
int[] a1:

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

java 复制代码
int a1[];

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

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

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

例如:

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

二.代码演示

java 复制代码
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 来知道数组的长度

java 复制代码
 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);
    }

四.进一步了解数组

java 复制代码
    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

java 复制代码
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));

    }
java 复制代码
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()

java 复制代码
 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));

    }

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

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

希望对你们有所帮助

相关推荐
65岁退休Coder3 分钟前
LangChain v1.3.4 笔记 - 07 补充:链式调用 LCEL
后端·python·langchain
卷无止境14 分钟前
FastAPI 部署在 Nginx 后面到底该怎么配
后端·python
半亩码田24 分钟前
C#转Python第3.1篇:Python 的 class 没有访问修饰符?面向对象的另一条路
开发语言·python·c#
真上帝的左手1 小时前
10. 软件设计&架构-Spring Security 7 整合CAS SSO 单点登录
java·spring·架构·sso
Wzx1980121 小时前
python沙箱和docker沙箱你选对了吗?
开发语言·python·docker
Python私教1 小时前
签名 URL 刷新导致审批失效?别急着删掉所有 query
python·安全
牧羊人.3331 小时前
Python 办公自动化从入门到入土|09 数据容器之字典
开发语言·python
Zane19942 小时前
单例线程安全、生产者消费者、死锁:并发面试三连问串讲
java·后端
小僧景贤2 小时前
嵌入式C语言 第二篇:基础语法|嵌入式C与标准C的核心差异
c语言·开发语言·嵌入式c语言
Zane19942 小时前
类变量与实例变量:一个共享列表引发的线上事故
后端·python