黑马程序员技术交流社区

标题: 求Arrays类中的两个方法的比较? [打印本页]

作者: 施大勇    时间: 2013-8-18 18:15
标题: 求Arrays类中的两个方法的比较?
Arrays类中的deepEquals(Object[]a1,Object[]a2)与equals(Object[]a1,Object[]a2)有什么不同?任意深度的嵌套数组怎么理解?
作者: ☆今☆    时间: 2013-8-19 00:15
String[] arr = new String[]{"bc"};
                String[] arr1 = new String[]{"bc"};
                Object[] str = new Object[]{"ac","bc",arr,"bc"};
                Object[] str1 = new Object[]{"ac","bc",arr1,"bc"};
                System.out.println(Arrays.deepEquals(str, str1));
                System.out.println(Arrays.equals(str, str1));
               
                //deepEquals是如果数组中还嵌套数组的话,会进入这个数组里面进行嵌套数组的元素是否相同的判断
                //而equals是不会进入嵌套的数组中的,只是直接判断这两个嵌套的数组是不是同一个对象.不是就为false;
                所以上面的两个数组,用deepEquals比较的结果是为真,因为嵌套的数组的元素相同
                而用equals比较的结果是false,因为arr和arr1不是同一个对象.
作者: 施大勇    时间: 2013-9-14 15:55
☆今☆ 发表于 2013-8-19 00:15
String[] arr = new String[]{"bc"};
                String[] arr1 = new String[]{"bc"};
                Object[] str = new Object ...

谢谢,终于懂了.

作者: 徐鹏跃    时间: 2013-11-21 11:18
一楼很牛  楼主技术分 给点我啊





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2