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

本文介绍了Java Arrays工具类的四个关键功能:快速排序与合并排序算法、数组转字符串与深度遍历、数组复制操作。通过实例演示了如何利用Arrays.sort对数组进行排序,以及Arrays.toString和Arrays.deepToString在处理二维数组中的应用。同时,Arrays.copyOf展示了数组长度调整的灵活性。
摘要由CSDN通过智能技术生成

数组工具类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入门】,提前观看下期内容!!

其乐等待着你的到来

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值