Arrays类的常用方法------每天一个java小知识

     

 📃个人主页:个人主页

💬推荐一款模拟面试、刷题神器,从基础到大厂面试题👉点击跳转刷题网站进行注册学习

   今天的小知识是关于java的Arrays类(数组操作的工具类)的学习。

        首先,我们先了解Arrays类是啥,关于Arrays类:

        Arrays类位于 java.util 包中,主要包含了操纵数组的各种方法

使用时导包:

import java.util.Arrays

        其次,了解该类有哪些方法以及如何使用:

        Arrays类包含用于操作数组的各种方法(如排序和搜索)。 该类还包含一个静态工厂,可以将数组视为列表。“静态工厂”说明Arrays类包含许多静态方法,以便程序员编程时方便调用。(提到静态方法的调用,我们即可以像实例方法一样采用  对象.方法名 进行调用(不推荐);也可以采用   类名.方法名 进行调用 (推荐).

        下面介绍一些Arrays类的常用方法:

        1.Arrays.toString(数组名 a)

public static String toString(类型[] a)     //使用时记得将类型更改为相应的数据类型

       方法作用: 返回指定数组的内容的字符串表示形式。 字符串表示由数组元素的列表组成,括在方括号( "[]" )中。 相邻的元素由字符", " (逗号后跟一个空格)分隔开。 元素被转换为字符串由String.valueOf(short)。 返回"null"如果a是null。

为什么要采用这个方法呢?不可以直接: 

System.out.println(a);     //a为数组名

        首先这是肯定不行的,因为这样输出的是数组a的地址;

        当然我们也可以采用for循环的方法将数组中元素逐一输出,虽然这样是可行的,但如果我们仅仅只是想看数组中具有哪些元素,没必要这么做,用Arrays.toString(数组名) 便可以直接输出数组中的内容。

测试代码:

import java.util.Arrays;

public class Dem1 {
	public static void main(String[] args)  {
		int[] a= {1,4,3,2};
		System.out.println(a);
		System.out.println(Arrays.toString(a));
	}
}

运行结果: 

[Ljava.lang.Integer;@5ca881b5
[1, 4, 3, 2]

2.Arrays.sort(组名 a)

public static void sort(类型[] a)

        对数组进行默认升序排序。

        实施注意事项:排序算法是由Vladimir Yaroslavskiy,Jon Bentley和Joshua Bloch提供的双轴快速排序。 该算法在许多数据集上提供O(n log(n))性能,导致其他快速排序降级为二次性能,并且通常比传统(单轴)Quicksort实现更快。

        对于我们小白对数组进行排序无疑是采用for循环语句来实现,可以说也是比较头疼的,所以Arrays类中提供的sort()方法无疑是造福小白啊。

        下面是代码测试:

import java.util.Arrays;

public class Dem1 {
	public static void main(String[] args){
		int[] a= {1,4,3,2};
		System.out.println(Arrays.toString(a));    //排序前数组中的内容
		Arrays.sort(a);
		System.out.println(Arrays.toString(a));    //排序后数组中的内容
	}
}

        运行结果:

[1, 4, 3, 2]   //排序前
[1, 2, 3, 4]   //排序后

3.Arrays.equals(数组名1,数组名2)

public static boolean equals(类型[] a,类型[] a2)

        如果两个指定的数组彼此相等 ,则返回true 。 如果两个数组都包含相同数量的元素,则两个数组被认为是相等的,并且两个数组中所有对应的元素对都相等。 换句话说,如果两个数组以相同的顺序包含相同的元素,则它们是相等的。 另外,如果两个数组引用都是null,则它们被认为是相等的 。

注意:比较的两个数组的类型必须一致!!!

测试代码:

import java.util.Arrays;

public class Dem1 {
	public static void main(String[] args){
		int[] arr1= {1,4,3,2};       //原数组
		int[] arr2= {1,6,5,7};		//数组元素个数相同,元素不同
		int[] arr3= {1,4,3,2,5};	//数组前面元素相同,个数不同
		int[] arr4= {1,4,3,2};		//数组元素及个数都相同
		double[]  dou= {1,4,3,2};   //数组元素及个数都相同, 但数组类型不同
		System.out.println(Arrays.equals(arr1, arr2));
		System.out.println(Arrays.equals(arr1, arr3));
		System.out.println(Arrays.equals(arr1, arr4));
		// System.out.println(Arrays.equals(arr1, dou));  报错
	}
}

运行结果:

false     //数组元素个数相同,元素不同
false     //数组前面元素相同,个数不同
true      //数组元素及个数都相同

报错信息:

Exception in thread "main" java.lang.Error: 无法解析的编译问题:
	类型 Arrays 中的方法 equals(int[], int[])对于参数(int[], double[])不适用
	语法错误,将“VariableDeclarators”插入到完整 LocalVariableDeclaration 中
	语法错误,将“;”插入到完整 LocalVariableDeclarationStatement 中
	无法解析 报错

        今天的知识分享就到这里,感谢大家的阅读!(小白记录学习,也请大佬多多指教;本文的方法及其介绍都是在jdk1.8 API帮助文档进行查找的,如果有不对的可能是翻译问题,也可能是手贱打错了(狗头)。然后帮助文档的话,大家可以网上搜哈,资源很多,找不到也可以私信我。)

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值