A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

方法Arrays.toString和Arrays.deepToString的使用场合有何不同?方法Arrays.equals和Arrays.deepEquals的使用场合有何不同?在这里能不能用一种方法去转换它呢?

评分

参与人数 1技术分 +1 收起 理由
小龙 + 1 看看同学们怎么答的!

查看全部评分

3 个回复

倒序浏览
黑马网友  发表于 2011-7-24 20:52:02
沙发
array.deepXXX()方法适用于数组中含有另一个数组的情况:
Array.toString方法当接受的数组中还有数组时打印出的仅是该内嵌数组的名字,
Array.deepToString方法会将内嵌数组的内容也打印出来,不管数组内嵌多少层,都会循环递归到最内层的数据.
另外,当数组中的数组有死循环般的引用时,也有相应的保护机制防止死循环

评分

参与人数 1技术分 +2 收起 理由
小龙 + 2 希望你的答案能帮助到他!

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-7-24 21:09:53
藤椅
楼上说的很对 deepToString方法主要用于多位数组 而toSring不能用在多维数组中 我这个给你举个例子吧
import java.util.*;
public class TestDeepArray
{
        public static void main(String[] args)
        {
                String [][] b = new String[3][4];
                for(int i = 0;i<3;i++)
                {
                        for (int j = 0;j < 4;j++ )
                        {
                                b[i][j] = "A"+j;
                        }
                }
                   //打印 content 和content1来看有什么不同
                   //通过打印可知content 的元素都被打印出来
                   //形如[[A0,A1,A2,A3],[A0,A1,A2,A3],[A0,A1,A2,A3]]
                   //而content1的则是一堆乱码
                        String content = Arrays.deepToString(b);
                        System.out.println("Hello World!: " +content);
                        String content1 = Arrays.toString(b);
                    System.out.println("Hello World!: " +content1);
        }
}
如果将上面的 String content 1= Arrays.toString(b[1]);
则toString能正确显示
回复 使用道具 举报
黑马网友  发表于 2011-7-24 21:53:44
板凳
toString()方法用来返回指定数组内容的字符串表示形式,而deepToString()返回指定数组深层内容的字符串(即多维数组)表示形式,deepEquals()方法也是为了解决equals() 不能解决深层的嵌套数组的问题。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马