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));

    }

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

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

希望对你们有所帮助

相关推荐
代码的乐趣25 分钟前
支持selenium的chrome driver更新到131.0.6778.204
chrome·python·selenium
好开心3327 分钟前
axios的使用
开发语言·前端·javascript·前端框架·html
又蓝1 小时前
使用 Python 操作 Excel 表格
开发语言·python·excel
小灰灰要减肥1 小时前
装饰者模式
java
张铁铁是个小胖子1 小时前
MyBatis学习
java·学习·mybatis
余~~185381628001 小时前
稳定的碰一碰发视频、碰一碰矩阵源码技术开发,支持OEM
开发语言·人工智能·python·音视频
0zxm1 小时前
06 - Django 视图view
网络·后端·python·django
Am心若依旧4092 小时前
[c++11(二)]Lambda表达式和Function包装器及bind函数
开发语言·c++
明月看潮生2 小时前
青少年编程与数学 02-004 Go语言Web编程 20课题、单元测试
开发语言·青少年编程·单元测试·编程与数学·goweb
Yan.love2 小时前
开发场景中Java 集合的最佳选择
java·数据结构·链表