java基础之 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(", ");  //如果不等于最大索引就将, 添加到缓冲区
   }
 }

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

(0)

相关推荐

  • Java自动添加重写的toString方法详解

    Java怎么自动添加重写的toString方法,这里我们将给大家介绍详细的解决方法. 首先,添加一个任意的类,具体的类型没有要求,然后在主程序中创建对象,这里要求构造方法的位置要求必须是可实例化的类或其子类对象. 然后在主程序中创建对象,这里要求构造方法的位置要求必须是可实例化的类或其子类对象. 然后,在该程序中点击鼠标右键,找到鼠标右键,找到source选项. 在第三步中找到source选项中,找到generate toString( )方法. 进入之后,什么都不用选择,直接点击界面最下方的o

  • Java Arrays工具类用法详解

    本文实例讲述了Java Arrays工具类用法.分享给大家供大家参考,具体如下: Arrays类 功能描述 Arrays类是一个工具类,其中包含了数组操作的很多方法,比如搜索和排序: Arrays类中的方法均为static修饰的,可以直接通过Arrays.xxx(xxx)的形式调用方法. 几个重要方法   1.asList(T... a) 由给定的数组a,返回一个固定大小的List对象.在这里,着重解释一下前面这句话的深层含义,我们可以看Arrays类的源码,来帮助我们理解. 生成的List对象

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

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

  • Java Object toString方法原理解析

    在Java中,所有的对象都是继承自Object,自然继承了toString方法,在当使用System,out.println()里面为一个对象的引用时,自动调用toString方法将对象打印出来.如果重写了tostring方法则调用重写的toString 方法. 先看下面一段代码 public class ToStringTest { static int i = 1; public static void main(String[] args) { System.out.println("lo

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

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

  • Java基础巩固抽象类与接口详解

    目录 1.抽象类 1.1.什么是抽象类 1.2.抽象类的用法 1.3.抽象类特点(限制条件) 2.接口 2.1.什么是接口 2.2.接口的用法 2.3.如何使用接口 2.4.接口的特点(限制条件) 2.5.如何实现多个接口 2.6.接口于接口之间的继承关系 2.7.如何使用接口 抽象类与接口 1.抽象类 1.1.什么是抽象类 如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类 1.2.抽象类的用法 一个类如果被 abstract 修饰称为抽象类,抽象类中被 abstract

  • Java基础之命名规范的详解

    前言 在编程的世界里,每种语言都有自己的一些规范.下面,就带你了解Java命名规范.对于程序员来说,如果想学好一门语言,想要自己写出来的代码能被他人轻易地读懂,深入的学习命名规范是非常必要的一件事情.在这里,总结了一下Java的命名规范. 一.Java命名规范: 1. 项目名称全部小写; 2. 包名全部小写; 3. 类名首字母大写,如果类名由多个字母组成,每个首字母都需要大写; 如:public class MyFirstClass{} 4. 变量名和方法名首字母小写,如果由多个单词组成,其后的

  • Java基础之序列化与反序列化详解

    目录 1.什么是序列化与反序列化? 2.Java如何实现序列化和反序列化? 3.如何自定义序列化和反序列化呢? 4.writeObject和readObject方法 5.serializable接口 1.什么是序列化与反序列化? 序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程.一般将一个对象存储至一个储存媒介,例如档案或是记亿体缓冲等.在网络传输过程中,可以是字节或是XML等格式.而字节的或XML编码格式可以还原完全相等的对象.这个相反的过程又称为反序列

  • Java实现字符串切割的方法详解

    今天给大家介绍一个小知识点,但是会非常的实用,就是平时我们写Java代码的时候,如果要对字符串进行切割,我们巧妙的运用一些技巧,可以把性能提升5~10倍.下面不说废话,直接来给大家上干货! 工作中常用的split()切割字符串效率高吗? 首先,我们用下面的一段代码,去拼接出来一个用逗号分隔的超长字符串,把从0开始一直到9999的每个数字都用逗号分隔,拼接成一个超长的字符串,以便于我们可以进行实验,代码如下所示: public class StringSplitTest { public stat

  • java 中enum的使用方法详解

    java 中enum的使用方法详解 enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性,存放在 java.lang 包中. 下面是我在使用 enum 过程中的一些经验和总结. 原始的接口定义常量 public interface IConstants { String MON = "Mon"; String TUE = "Tue"; String WED = "Wed"; String THU = "Thu

  • Java基础之Filter的实例详解

    Java基础之Filter的实例详解 定义: Filter,是Servlet的一种,接口类为javax.servlet.Filter,以一种模块化或者可重用的方法封装公共行为,本质是可复用的代码片段. 职责:在请求到达Servlet之前对请求头作预处理,或者在服务器响应完成之后对响应内容作后处理.分界线为chain.doFilter的调用.该调用是将请求处理权交给其Filter列表链上的其它Filter. 生命周期:  Filter在Web容器启动时被容器实例化,并调用其init方法完成初始化,

  • java中的arrays.sort()代码详解

    Arrays.sort(T[], Comparator < ? super T > c) 方法用于对象数组按用户自定义规则排序. 官方Java文档只是简要描述此方法的作用,并未进行详细的介绍,本文将深入解析此方法. 1. 简单示例 sort方法的使用非常的简单明了,下面的例子中,先定义一个比较Dog大小的Comparator,然后将其实例对象作为参数传给sort方法,通过此示例,你应该能够快速掌握Arrays.sort()的使用方法. import java.util.Arrays; impo

  • Java基础之垃圾回收机制详解

    一.GC的作用 进行内存管理 C语言中的内存,申请内存之后需要手动释放:一旦忘记释放,就会发生内存泄漏! 而Java语言中,申请内存后会由GC来释放内存空间,无需手动释放 GC虽然代替了手动释放的操作,但是它也有局限性: 需要消耗更多的资源: 没有手动释放那么及时: STW(Stop The World)会影响程序的执行效率 二.GC主要回收哪些内存 (1)堆:主要回收堆中的内存 (2)方法区:需要回收 (3)栈(包括本地方法栈和JVM虚拟机栈):不需要回收,栈上的内存什么时候释放是明确的(线程

  • Java基础之动态代理Cglib详解

    一.前言 经测试,jdk创建对象的速度远大于cglib,这是由于cglib创建对象时需要操作字节码.cglib执行速度略大于jdk,所以比较适合单例模式.另外由于CGLIB的大部分类是直接对Java字节码进行操作,这样生成的类会在Java的永久堆中.如果动态代理操作过多,容易造成永久堆满,触发OutOfMemory异常.spring默认使用jdk动态代理,如果类没有接口,则使用cglib. 二.服务 package proxy.cglib; /** * @Description: <br/>

随机推荐