javaSE中数组(下)

java中的数组

1、数组作为函数的返回值
例1:写一个方法, 将数组中的每个元素都 * 2

public class TestDome {
    public static int[] sum(int[] array1){
        int[] array2 = new int[array1.length];
        for(int i = 0; i < array1.length; i++) {
            array2[i] = array1[i] * 2;
        }
        return array2;
    }
    public static void main(String[] args) {
        //写一个方法, 将数组中的每个元素都 * 2
        int[] array1 = {1,2,3,4,5,6};
        int[] ret = sum(array1);
        System.out.println(Arrays.toString(ret));
    }
}

由于数组是引用类型, 返回的时候只是将这个数组的首地址返回给函数调用者, 没有拷贝数组内容, 从而比较高

2、数组练习
2.1、数字转字符串

public static void main(String[] args) {
        //数组转字符串
        int[] array = {1,2,3,4,5,6};
        System.out.println(Arrays.toString(array));
    }

在这里插入图片描述
Arrays.toString()这是一个方法,将数字转换成字符串
接下来我们实现一个自己的转换方法MytoString()
我们看到打印出来是[1,2,3,4,5,6]是这个样子的,打印一个元素加上一个“,”(逗号),最后一个元素打印不加上“,”就行了,再将“[ ]”中括号加上去,这样就得到了 字符串。

public static String MytoString(int[] array){
        if(array == null || (array.length == 0)){
            return null;
        }
        String ret = "[";
        for (int i = 0; i < array.length; i++) {
            ret += array[i];
            if(i != array.length){
                ret += ",";
            }
        }
        ret += "]";
        return ret;
    }
    public static void main(String[] args) {
        //数组转字符串
        int[] array = {1,2,3,4,5,6};
        System.out.println(MytoString(array));
    }

在这里插入图片描述
2.2、数组拷贝
就是将一个数组拷贝到另一个新的数组当中那个去
这是用for循环来实现,得到array的么每个 元素,将他赋值到ret这个新数组中去

public static void main(String[] args) {
        int[] array = {1,2,3,4,5,6,7};
        int[] ret = new int[array.length];
        for (int i = 0; i < array.length; i++) {
            ret[i] = array[i];
        }
        System.out.println("ret为:"+Arrays.toString(ret));
    }

在这里插入图片描述
那java中有没有用方法来实现呢???

public static void main(String[] args) {
        int[] array = {1,2,3,4,5,6,7};
        int[] ret = Arrays.copyOf(array,array.length);
        System.out.printf(Arrays.toString(ret));
    }

在这里插入图片描述
Arrays.copyOf():这是拷贝数组的方法
Arrays.copyOf(数组名,数组大小);
那可不可以 拷贝 一个 数组中有个范围的元素呢???

public static void main(String[] args) {
        int[] array = {1,2,3,4,5,6,7};
        int[] ret = Arrays.copyOfRange(array,1,5);
        System.out.printf(Arrays.toString(ret));
    }

在这里插入图片描述
Arrays.copyOfRange();
Arrays.copyOfRange(数组名,拷贝的起始位置,拷贝的终止位置); from: 1 to: 5,意思是拷贝数组的1到5范围的元素,但是这是一个左闭右开区间[1 , 5)不包含5位置的元素。

3、二维数组
二维数组实际上是一种特殊的一维数组,他的没每个 元素是由一维 数组组成的

在这里插入图片描述
上图中我们可以看到array[0],array[1],代表的两哥一维数组,这样我们就可确定二维数组的行数array.lenght ,array[0].lenght 表示第一行的列数。
2.1、二维数组的定义与使用

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

二维数组中的[ ] 中也不能写数值
在这里插入图片描述

打印数组中的每个数:

在这里插入图片描述
使用Arrays.deepToString打印数组
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

我们可以看到 二维数组 中的列可以省略,行不可以省略

在这里插入图片描述
这是不规则数组,第一行只有两个元素,,第二行有三个元素,所以说明了行不能省略

不规则二维数组
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Später321

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值