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

    }

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

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

希望对你们有所帮助

相关推荐
霍徵琅几秒前
Groovy语言的物联网
开发语言·后端·golang
G皮T8 分钟前
【Python Cookbook】字符串和文本(五):递归下降分析器
数据结构·python·正则表达式·字符串·编译原理·词法分析·语法解析
Yan-英杰10 分钟前
DeepSeek-R1模型现已登录亚马逊云科技
java·大数据·人工智能·科技·机器学习·云计算·deepseek
TDengine (老段)21 分钟前
TDengine 中的日志系统
java·大数据·数据库·物联网·时序数据库·tdengine·iotdb
不想学习!!23 分钟前
linux之进程控制
java·linux·服务器
独好紫罗兰30 分钟前
洛谷题单3-P1420 最长连号-python-流程图重构
开发语言·python·算法
kingmax5421200834 分钟前
深入解析:使用Python爬取Bilibili视频
开发语言·python·音视频
申雪菱44 分钟前
Scheme语言的数据挖掘
开发语言·后端·golang
程序员一诺1 小时前
【Flask开发】嘿马文学web完整flask项目第1篇:简介【附代码文档】
后端·python·flask·框架
Aerkui1 小时前
Python列表(List)深度解析
开发语言·python