聊聊Arrays.deepToString()和Arrays.toString()的区别

Arrays.deepToString()主要用于数组中还有数组的情况,而Arrays.toString()则相反,对于Arrays.toString()而言,当数组中有数组时,不会打印出数组中的内容,只会以地址的形式打印出来。

示例:

package com.oovever.hutool.util;
import java.util.Arrays;
/**
* @Author OovEver
* @Date 2017/12/24 17:31
*/
public class test {
 public static void main(String[] args) {
  int a[] = {1, 2, 3};
  System.out.println(Arrays.toString(a));
  int b[][] = {{1, 2, 3}, {4, 5, 6}};
  System.out.println(Arrays.toString(b));
  System.out.println(Arrays.deepToString(b));
 }
}

结果

[1, 2, 3]
[[I@14ae5a5, [I@7f31245a]
[[1, 2, 3], [4, 5, 6]]

补充:Arrays.deepToString()解释和用法(返回指定数组“深层内容”的字符串表示形式)

deepToString

public static String deepToString(Object[] a)

包位置:

java.util.Arrays.deepToString()

返回值:

返回指定数组“深层内容”的字符串表示形式。

解释与用法:

如果数组包含作为元素的其他数组,则字符串表示形式包含其内容等。此方法是为了将多维数组转换字符串而设计的。

字符串表现形式: 字符串表示形式由数组的元素列表组成,括在方括号("[]")中。相邻元素用字符 ", "(逗号加空格)分隔。这些元素通过 String.valueOf(Object) 转换为字符串,除非它们是自身的数组。

举例说明:

import java.util.Arrays;
/**
 * Arrays.deepToString()方法打印的是二维数组中一维数组中的值
 * Arrays.toString()方法打印的是二维数组中一维数组的地址
 */
public class TestDeepToString {
 public static void main(String[] args) {
  int[] array1 = {6, 6, 6};
  int[] array2 = {8, 8, 8};
  int[][] array3 = {array1, array2};
//  int[][] array4 = {{6, 6, 6}, {8, 8, 8}};
  System.out.println(Arrays.deepToString(array3)); //[[6, 6, 6], [8, 8, 8]]
  System.out.println(Arrays.toString(array3));  //[[I@511d50c0, [I@60e53b93]
 }
}

打印结果:

[[6, 6, 6], [8, 8, 8]]
[[I@511d50c0, [I@60e53b93]

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • java基础之 Arrays.toString()方法详解

    在实际项目中,如果想要把数组中的内容打印出来,直接使用toString方法只会打印出数组的地址,因此需要使用Arrays的toString方法, 可以从其内部实现中看出来,该方法支持入参可以是long,float,double,int,boolean,byte,object 型的数组. 补充:java中arrays.toString(int [ ] arr)方法的底层原理 我就废话不多说了,大家还是直接看代码吧~ /** *@author:肖佳嘉 * */ * public static Str

  • java中的tostring方法的具体用法

    我们知道调用对象的toString()方法会直接输出对象的属性信息,但是具体怎么实现的?以及如何更好地实现它呢?现在来学习下. 通过java文档我们能知道,toString()方法在Object类里定义的,其返回值类型为String类型,返回类名和它的引用地址. 在进行String类与其他类型的连接操作时,自动调用toString()方法,demo如下: Date now = new Date(); System.out.println("now = " + now);//相当于下一行

  • 千万别这样使用Arrays.asList详解

    前言 使用Arrays.asList()的原因无非是想将数组或一些元素转为集合,而你得到的集合并不一定是你想要的那个集合. 而一开始asList的设计时用于打印数组而设计的,但jdk1.5开始,有了另一个比较更方便的打印函数Arrays.toString(),于是打印不再使用asList(),而asList()恰巧可用于将数组转为集合. 1.错误用法 如果你这样使用过,那你可要注意了. 错误一 将基本类型数组作为asList的参数 int[] arr = {1,2,3}; List list =

  • 聊聊Arrays.deepToString()和Arrays.toString()的区别

    Arrays.deepToString()主要用于数组中还有数组的情况,而Arrays.toString()则相反,对于Arrays.toString()而言,当数组中有数组时,不会打印出数组中的内容,只会以地址的形式打印出来. 示例: package com.oovever.hutool.util; import java.util.Arrays; /** * @Author OovEver * @Date 2017/12/24 17:31 */ public class test { pub

  • C#中Convert.ToString和ToString的区别分析

    本文实例分析了C#中Convert.ToString和ToString的区别,对于初学者来说是很有必要加以熟练掌握的.具体分析如下: 1.Convert.ToString能处理字符串为null的情况. 测试代码如下: static void Main(string[] args) { string msg = null; Console.WriteLine(Convert.ToString(msg)); Console.ReadKey(); } 运行,没有抛出异常. 2.ToString方法不能

  • 浅谈JS中String()与 .toString()的区别

    我们知道String()与 .toString()都是可以转换为字符串类型,但是String()与 .toString()的还是有区别的 1..toString()可以将所有的的数据都转换为字符串,但是要排除null 和 undefined 例如将false转为字符串类型 <script> var str = false.toString(); console.log(str, typeof str); </script> 返回的结果为 false,string 看看null 和

  • 浅谈C#中ToString()和Convert.ToString()的区别

    浅谈ToString()和Convert.ToString()方法的区别 一.一般用法说明 ToString()是Object的扩展方法,所以都有ToString()方法;而Convert.ToString(param)(其中param参数的数据类型可以是各种基本数据类型,也可以是bool或object类对象. 二.ToString()和Convert.ToString()的区别 一般情况下,这两种方法都可以通用,但是当返回的数据类型中有可能出现null值时如果调用ToString方法了,就会返

  • JavaScript中toLocaleString()和toString()的区别实例分析

    本文实例讲述了JavaScript中toLocaleString()和toString()的区别.分享给大家供大家参考,具体如下: <javascript高级程序设计>解释: "toLocaleString()返回对象的字符串表示,该字符串与执行环境的地区对应:toString()返回对象的字符串表示:" 感觉还是不太好理解......来看几个实例: 字符串: var a = 6666; a.toLocaleString(); //"6,666" a.t

  • 聊聊docker中容器与镜像的区别

    什么是镜像? 镜像可以看成是由多个镜像层叠加起来的一个文件系统(通过UnionFS与AUFS文件联合系统实现),镜像层也可以简单理解为一个基本的镜像,而每个镜像层之间通过指针的形式进行叠加. 什么是容器? 容器(container)的定义和镜像(image)几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的.要点:容器 = 镜像 + 读写层,并且容器的定义并没有提及是否要运行容器. 今天抛开原理,抛开底层.通俗的讲解docker中容器与镜像的区别. 对于初学者来说,刚

  • 聊聊ResourceBundle和properties读取配置文件的区别

    java.util.ResourceBundle 和java.util.properties 读取配置文件区别 这两个类都是读取properties格式的文件的,而Properties同时还能用来写文件. Properties的处理方式是将其作为一个映射表,而且这个类表示了一个持久的属性集,他是继承HashTable这个类. ResourceBundle本质上也是一个映射,但是它提供了国际化的功能. 假设电脑设置的地区是中国大陆,语言是中文 那么你向ResourceBundle(资源约束名称为b

  • 聊聊C# 中HashTable与Dictionary的区别说明

    1. 哈希表(HashTable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,其中key通常可用来快速查找,同时key是区分大小写:value用于存储对应于key的值.Hashtable中keyvalue键值对均为object类型,所以Hashtable可以支持任何类型的keyvalue键值对. 2. 什么情况下使用哈希表 (1)某些数据会被高频率查询(2)数据量大(3)查询字

  • 聊聊@RequestParam,@PathParam,@PathVariable等注解的区别

    @RequestParam 和 @PathVariable 注解是用于从request中接收请求的,两个都可以接收参数,关键点不同的是@RequestParam 是从request里面拿取值,而 @PathVariable 是从一个URI模板里面来填充 @RequestParam 看下面一段代码: http://localhost:8080/springmvc/hello/101?param1=10&param2=20 根据上面的这个URL,你可以用这样的方式来进行获取 public Strin

  • 聊聊BeanUtils.copyProperties和clone()方法的区别

    目录 首先,BeanUtils有两种: 效率: 需要在pom文件中引入这个包 在pom文件里面引入所需要的包 新建一个实体类StudentEntity实现Cloneable接口 测试方法 最近撸代码的时候发现有人将一个对象的值赋给另一个对象的时候,并没有使用常规的set/get方法去给对象赋值,而是采用BeanUtils.copyProperties(A,B)这个方法去赋值,但是有的还是有局限性,比如Date类型的值无法赋值,只能赋值为null,所以我大致百度了一下,作为记录. 首先,BeanU

随机推荐