当前位置 : 主页 > 编程语言 > java >

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

来源:互联网 收集:自由互联 发布时间:2021-04-03
在实际项目中,如果想要把数组中的内容打印出来,直接使用toString方法只会打印出数组的地址,因此需要使用Arrays的toString方法, 可以从其内部实现中看出来,该方法支持入参可以是

在实际项目中,如果想要把数组中的内容打印出来,直接使用toString方法只会打印出数组的地址,因此需要使用Arrays的toString方法,

可以从其内部实现中看出来,该方法支持入参可以是long,float,double,int,boolean,byte,object 型的数组。

补充:java中arrays.toString(int [ ] arr)方法的底层原理

我就废话不多说了,大家还是直接看代码吧~

/**
*@author:肖佳嘉
*
*/
 * public static String toString(int[] a)
 * public static void sort(int[] a)
 * public static int binarySearch(int[] a,int key)
 * 
 * public static String toString(int[] a) {
   if (a == null)  //如果传入的数组是null
    return "null";  //返回null
   int iMax = a.length - 1;  //iMax最大索引
   if (iMax == -1)  //如果数组中没有元素
    return "[]";  //返回[]
 
   StringBuilder b = new StringBuilder(); //线程不安全,效率高
   b.append('[');  //将[添加到字符串缓冲区中
   for (int i = 0; ; i++) {  //遍历数组,判断语句没有写默认是true
    b.append(a[i]);  //把第一个元素添加进字符串缓冲区
    if (i == iMax)  //如果索引等于了最大索引值
     return b.append(']').toString(); //将]添加到字符串缓冲区,在转换成字符串并返回
    b.append(", ");  //如果不等于最大索引就将, 添加到缓冲区
   }
 }

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

网友评论