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

    }

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

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

希望对你们有所帮助

相关推荐
长勺1 分钟前
Java线程池调优与实践经验
java·开发语言
安审若无2 分钟前
Base64加密解密
python·密码学
灬0灬灬0灬2 分钟前
掩膜合并代码
开发语言·python
愿做无知一猿6 分钟前
【JAVA】中文我该怎么排序?
java·开发语言·python
LIUDAN'S WORLD7 分钟前
大模型微调与高效训练
人工智能·python
一切顺势而行7 分钟前
树的基础算法
java·开发语言·算法
琢磨先生David7 分钟前
深度解析 Java 中介者模式:重构复杂交互场景的优雅方案
java·设计模式
慌糖9 分钟前
[特殊字符] 遇见Flask
后端·python·flask
Code blocks17 分钟前
百度OCR:证件识别
java·ocr·springboot·web