Java中Arrays类的两个方法:deepEquals和equals

deepEquals和equals是Java中Arrays类的两个静态方法,可是它们之间有什么样的区别呢?

代码一、

import java.util.Arrays;

public class Test {
	public static void main(String[] args) {
		String[][] name1 = {{ "G","a","o" },{ "H","u","a","n"},{ "j","i","e"}};
		String[][] name2 = {{ "G","a","o" },{ "H","u","a","n"},{ "j","i","e"}};

		System.out.println(Arrays.equals(name1, name2));    // false
		System.out.println(Arrays.deepEquals(name1, name2));// true
	}
}

代码二、

import java.util.Arrays;

public class Test {
	public static void main(String[] args) {
		String[] name1 = {"G","a","o","H","u","a","n","j","i","e"};
		String[] name2 = {"G","a","o","H","u","a","n","j","i","e"};
		System.out.println(Arrays.equals(name1, name2));      // true
		System.out.println(Arrays.deepEquals(name1, name2));  // true
	}
}

总结:

1、deepEquals用于判定两个指定数组彼此是否深层相等,此方法适用于任意深度的嵌套数组。

2、equals用于判定两个数组是否相等,如果两个数组以相同顺序包含相同元素,则返回true,否则返回false。

3、通过比对“代码一”和“代码二”我们可以得出这样一个结论:如果两个数组使用equals返回true,则使用deepEquals也返回true,也就是说在比较的两个数组均为一维数组的前提下,equals和deepEquals的比较结果没有差别;

4、如果要比较多为数组,则需要使用deepEquals方法;

时间: 2024-10-22 22:49:03

Java中Arrays类的两个方法:deepEquals和equals的相关文章

java中Arrays类中,binarySearch()方法的返回值问题

最近在复习Java知识,发现果然不经常使用忘得非常快... 看到binarySearch()方法的使用时,发现书上有点错误,于是就自己上机实验了一下,最后总结一下该方法的返回值. 总结:binarySearch()方法的返回值为:1.如果找到关键字,则返回值为关键字在数组中的位置索引,且索引从0开始2.如果没有找到关键字,返回值为负的插入点值,所谓插入点值就是第一个比关键字大的元素在数组中的位置索引,而且这个位置索引从1开始. 注意:调用binarySearch()方法前要先调用sort方法对数

JAVA中Arrays.sort()使用两种方式(Comparable和Comparator接口)对对象或者引用进行排序

一.描述 自定义的类要按照一定的方式进行排序,比如一个Person类要按照年龄进行从小到大排序,比如一个Student类要按照成绩进行由高到低排序. 这里我们采用两种方式,一种是使用Comparable接口:让待排序对象所在的类实现Comparable接口,并重写Comparable接口中的compareTo()方法,缺点是只能按照一种规则排序. 另一种方式是使用Comparator接口:编写多个排序方式类实现Comparator接口,并重写新Comparator接口中的compare()方法,

Java 中对类进行排序的方法(转)

JAVA中的比较器接口Comparable用于数组对象的排序,要使用此功能,必须让类继承自Comparable接口,重写compareTo(Object obj)方法. import java.util.*; class Person implements Comparable{ private String name; private int age; private float score; public Person(String name,int age,float score){   

Java中读取Map的两种方法对比

引言: 在Java中Map的使用非常频繁,我们经常会需要对Map进行遍历和读取,下面将展示两种遍历的方法以及简要分析. 1.  遍历Map方法A Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.getKey(); Object val =

Java中集合排序的两种方法

import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; /** * * <p> * ClassName CollectionsSort * </p> * <p> * Description 主要介绍两种集合的排序算法<br/> * 第一:java.util.Collections.sort(jav

Java中Arrays工具列的asList()方法的使用

public static <T> List<T> asList(T... a): 把数组转成集 注意事项: 虽然可以把数组转成集合,但是集合的长度不能改变. Demo: public class ArraysDemo { public static void main(String[] args) { // 定义一个数组 // String[] strArray = { "hello", "world", "java"

Java 中获取类路径 classpath 的方法

System.out.println("++++++++++++++++++++++++"); String path = System.getProperty("java.class.path"); String path2 = FreeMarkerWriter.class.getProtectionDomain().getCodeSource().getLocation().getPath(); String path3 = FreeMarkerWriter.c

105、Java中String类之利用indexOf()方法判断子字符串是否存在

01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public static void main(String args[]) { String str = "helloworld"; // 字符串对象 if (str.indexOf("world") != -1) { // 能找到子字符串 System.out.println(

106、Java中String类之使用contains()方法判断子字符串是否存在

01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public static void main(String args[]) { String str = "helloworld"; // 字符串对象 if (str.contains("world")) { // 子字符串存在 System.out.println("