从C到JAVA(数组)

我们在学完C之后想要学习一个面向对象的语言,我选择了JAVA,我会从C的基础上写一些我在学习时的感悟与理解,仅供参考,大佬请指教

在JAVA中很多东西和C都时一样的,我就不过多阐述,前面基本一致的可以翻阅课本啥的看看就很容易理解了,这里我们从数组开始

目录

1.JAVA中数组的定义

2.JAVA中数组的初始化

3.数组的使用

4.二维数组


1.JAVA中数组的定义

在JAVA中我们定义数组的方式和C不一样,我们是用

int[] array;

上面的格式进行定义的,和C语言中的中括号位置不同,其他的可以一样理解

2.JAVA中数组的初始化

在JAVA中我们数组的初始化有3种方法,这里和C语言就有不同之处了

int[] array1 = {1,2,3,4,5};
int[] array2 = new int[5];
int[] array3 = new int[]{1,2,3,4,5};

这里使用的第一种和第三种基本上是一个意思,第一种是第三种的简化版本

在JAVA中,我们使用数组需要给变量new一个对象,在堆中开辟空间,而array就是我们的变量,这些存放地址的变量又叫做引用类型

基本数据类型创建的变量,称为基本变量,该变量空间中直接存放的是其所对应的值;
而引用数据类型创建的变量,一般称为对象的引用,其空间中存储的是对象所在空间的地址。

注意:在JAVA中如果数组中的元素不初始化并不会和C一样给一些随机值,JAVA会给数组中元素赋值对应的0或者null值,而boolean值则赋值false

3.数组的使用

我们JAVA中访问数组的方式和C中的方式是一样的,也是array[0]这种方式进行访问的

而我们进行遍历的时候仍然可以用C语言中的方法进行

for(int i = 0;i < array.length;i++){
array[i] = i;
}

这里JAVA有一个好处,就是在使用数组长度的时候可以直接数组名.length就能得到数组的长度

而JAVA也给我们提供了另外的一个遍历方式

for(int x:array){
x = 10;
}

这就是foreach,我们可以理解为定义一个遍历x,和数组的变量类型必须一致,然后数组中读到一个元素就放到x中去,这种遍历方式在后面还会使用很多

注意:在访问数组的时候,需要注意不能让数组越界访问,否则就会报错

在JAVA中数组不仅可以存储数据,还可以用来作为函数的返回值和形式参数

看代码

    public static void fun(int[] array){
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }
    }
    public static void main(String[] args) {
        int[] array= {1,2,3,4,5};
        fun(array);
    }

看这段代码中,array就是作为一个数组被当成形参传输进去了可以看到依然可以得到执行结果的

再来

   public static int[] fun(int[] array){
        int[] ret = new int[2];
        for (int i = 0; i < array.length; i++) {
            if(i == 0 ){
                ret[0] = array[i];
            }else if (i == array.length-1){
                ret[1] = array[i];
            }
        }
        return ret;
    }
    public static void main(String[] args) {
        int[] array= {1,2,3,4,5};
        for (int i = 0; i < 2; i++) {
            System.out.println(fun(array)[i]);//这里我们可以吧fun(array)直接当成fun函数的 
                                              //返回值来看
        }
    }

这两段代码反映了数组可以作为形参和返回值

在数组的Array类中还有很多好用的方法,可以在JAVA帮助手册中查看到如果需要可以私信我,我可以免费提供帮助手册

4.二维数组

二维数组其实很简单,大部分和C一样,相当C和java一维数组的究极缝合怪

int[][] array1; //二维数组的定义
int[][] array2 = {{1,2},{3,4},{4,5}};
int[][] array3 = new int[][];
int[][] array4 = new int[3][2]{{1,2},{3,4},{4,5}};

可以看到和上面一维数组的用法基本大同小异

这里主要提一个JAVA中的使用方法

    public static void main(String[] args) {
        int[][] array= {{1,2},{2,3}};
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[i].length; j++) {
                System.out.println(array[i][j]);
            }
        }

    }

这里我们在使用循环的时候使用了array.length代表行数,array【i】.length代表列数,其实就是把二维数组看成一个存放一维数组的一维数组,这里不理解也没关系,后面会理解的,可暂时记住用法就好了

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值