java中的array.toString()和array.deepToString()有什么区别吗?
答案:3 悬赏:80 手机版
解决时间 2021-02-27 18:00
- 提问者网友:爱了却不能说
- 2021-02-27 00:32
java中的array.toString()和array.deepToString()有什么区别吗?
最佳答案
- 五星知识达人网友:三千妖杀
- 2021-02-27 01:51
array.deepXXX()方法适用于数组中含有另一个数组的情况:
Array.toString方法当接受的数组中还有数组时打印出的仅是该内嵌数组的名字,Array.deepToString方法会将内嵌数组的内容也打印出来,不管数组内嵌多少层,都会循环递归到最内层的数据.另外,当数组中的数组有死循环般的引用时,也有相应的保护机制防止死循环
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能正确显示 toString()方法用来返回指定数组内容的字符串表示形式,而deepToString()返回指定数组深层内容的字符串(即多维数组)表示形式,deepEquals()方法也是为了解决equals() 不能解决深层的嵌套数组的问题。
Array.toString方法当接受的数组中还有数组时打印出的仅是该内嵌数组的名字,Array.deepToString方法会将内嵌数组的内容也打印出来,不管数组内嵌多少层,都会循环递归到最内层的数据.另外,当数组中的数组有死循环般的引用时,也有相应的保护机制防止死循环
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能正确显示 toString()方法用来返回指定数组内容的字符串表示形式,而deepToString()返回指定数组深层内容的字符串(即多维数组)表示形式,deepEquals()方法也是为了解决equals() 不能解决深层的嵌套数组的问题。
全部回答
- 1楼网友:低音帝王
- 2021-02-27 02:57
明显没有看文档。看过的不会问这种问题
- 2楼网友:洒脱疯子
- 2021-02-27 02:17
array.toString()是对数组的遍历个从0~array.length-1 返回指定数组内容的字符串表示形式。
array.deepToString() 返回指定数组“深层内容”的字符串表示形式。如果数组包含作为元素的其他数组,则字符串表示形式包含其内容等,为了将多维数组转换为字符串而设计
字符串表示形式由数组的元素列表组成,括在方括号("[]")中。相邻元素用字符 ", "(逗号加空格)分隔。这些元素通过 String.valueOf(Object) 转换为字符串,除非它们是自身的数组。
如果元素 e 是一个基本类型的数组,则通过调用 Arrays.toString(e) 的适当重载将它转换为字符串。如果元素 e 是一个引用类型的数组,则通过递归调用此方法将它转换为字符串。
为了避免无限递归,如果指定数组包含本身作为其元素,或者包含通过一个或多个数组级别对其自身的间接引用,则将自引用转换为字符串 "[...]"。例如,只包含对自身进行引用的数组将呈现为 "[[...]]"。
如果指定数组为 null,则此方法返回 "null"。
array.deepToString() 返回指定数组“深层内容”的字符串表示形式。如果数组包含作为元素的其他数组,则字符串表示形式包含其内容等,为了将多维数组转换为字符串而设计
字符串表示形式由数组的元素列表组成,括在方括号("[]")中。相邻元素用字符 ", "(逗号加空格)分隔。这些元素通过 String.valueOf(Object) 转换为字符串,除非它们是自身的数组。
如果元素 e 是一个基本类型的数组,则通过调用 Arrays.toString(e) 的适当重载将它转换为字符串。如果元素 e 是一个引用类型的数组,则通过递归调用此方法将它转换为字符串。
为了避免无限递归,如果指定数组包含本身作为其元素,或者包含通过一个或多个数组级别对其自身的间接引用,则将自引用转换为字符串 "[...]"。例如,只包含对自身进行引用的数组将呈现为 "[[...]]"。
如果指定数组为 null,则此方法返回 "null"。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯