java入门(十二) | 数组工具类Arrays(四)

数组工具类Arrays

1.1 Arrays.sort(数组)

对数组排序,对于基本类型的数组使用优化后的快速排序算法,效率高。
对引用类型数组,使用优化后的合并排序算法。

1.2 Arrays.toString(数组)

把数组里的数据,用逗号连接成一个字符串。【值1,值2】

1.3 Arrays.deepToString(数组)

可以打印/遍历二位数组,代替for的嵌套循环
在上一节中代码解析,算了再打印一遍吧

package cn.qile.array;

import java.util.Arrays;

public class Test5 {
    public static void main(String[] args) {
        int[][] a = {
                { 1, 2, 3, 4 },
                { 5, 6, 7, 8 },
                { 9, 10, 11, 12 }
        };
        System.out.println(Arrays.toString(a));//地址值 -- [[I@12a3a380, [I@29453f44, [I@5cad8086]
        System.out.println(Arrays.deepToString(a));//打印二位数组 -- [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
    }
}

1.4 Arrays.copyOf(原数组,新的长度)

把数组复制成一个指定长度的新数组。
新数组长度大于原数组,相当于复制,并增加位置
新数组长度小于原数组,相当于截取前一部分数据

大练习:

package cn.qile.array;

import java.util.Arrays;
import java.util.Random;

//测试数组的工具类
public class Test7_Arrays {
    public static void main(String[] args) {
        int[] array = method();//随机值数组
//     [98, 73, 79, 78, 5]
        System.out.println(Arrays.toString(array));

        //sort()--对无需数组排序--默认是从小到大排序
        //sort()底层的代码实现使用的排序算法是 优化之后的 快速排序算法
        Arrays.sort(array);
        //打印数组中的元素[5, 73, 78, 79, 98]
        System.out.println(Arrays.toString(array));

        //TODO 为什么sort()没有返回值 ,为什么copyOf()有返回值

        //copyOf(m,n)--m是原数组的名称,n是新数组的长度
        //数组的扩容 -- 新数组的长度 > 原数组的长度
        int[] newA = Arrays.copyOf(array, 10);//完成数组的复制
//     [5, 73, 78, 79, 98, 0, 0, 0, 0, 0]  -- 数组的扩容
        System.out.println(Arrays.toString(newA));

        //数组的缩容 -- 新数组的长度 < 原数组的长度
        int[] newB = Arrays.copyOf(array, 3);//完成数组的复制
//     [5, 73, 78]  -- 数组的缩容
        System.out.println(Arrays.toString(newB));

    }


    //随机值数组
    public static int[] method(){
        //1、创建数组
        int[] a = new int[5];

        //2、遍历数组并改值
        for(int i = 0 ; i < a.length ; i++ ) {
            a[i] = new Random().nextInt(100);
        }

        //3、把无序数组返回调用位置
        return a;

    }
}

下一期:java入门(十三) | 变量

关注【其乐不是码农】,回复【java入门】,提前观看下期内容!!

其乐等待着你的到来

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值