Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >java打印数组内容

java打印数组内容

作者头像
全栈程序员站长
发布于 2022-08-11 11:10:37
发布于 2022-08-11 11:10:37
1.5K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

在java中直接输出数组只能得到引用地址

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
byte[] bytes = {
  
  1, 2, 3, 4, 5};
int[] ints = {
  
  1, 2, 3, 4, 5};
System.out.println(bytes);
System.out.println(ints);

输出
[B@1b6d3586
[S@4554617c

打印数组内容, 得到友好的打印

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static void main(String args[]) throws Exception {
        byte[] bytes = {
  
  1, 2, 3, 4, 5};
        short[] shorts = {
  
  1, 2, 3, 4, 5};
        char[] chars = {
  
  'a', 'b', 'c', 'd', 'e'};
        int[] ints = {
  
  1, 2, 3, 4, 5};
        long[] longs = {
  
  1, 2, 3, 4, 5};
        float[] floats = {
  
  1.1F, 2.2F, 3.3F, 4.4F, 5.5F};
        double[] doubles = {
  
  1.1, 2.2, 3.3, 4.4, 5.5};
        String[] strings = {
  
  "aa", "bb", "cc", "dd", "ee", "null"};

        Integer[] integers = {
  
  1, 2, 3, 4, 5};

        int[] ints2 = {};
        int[] ints3 = null;

        List<String> strings1 = new ArrayList<>();
        strings1.add("abc");
        strings1.add("def");
        strings1.add("xyz");
        strings1.add("null");

        Map<Integer, String> map = new HashMap();
        map.put(1, "aa");
        map.put(2, "bb");
        map.put(3, "cc");
        map.put(4, null);

        System.out.println(bytes);
        System.out.println(shorts);
        System.out.println(chars);
        System.out.println(ints);
        System.out.println(longs);
        System.out.println(floats);
        System.out.println(doubles);
        System.out.println(strings);
        System.out.println(integers);
        System.out.println(ints2);
        System.out.println(ints3);
        System.out.println(strings1);
        System.out.println(map);
    }

输出: 

{
  
  1, 2, 3, 4, 5}
{
  
  1, 2, 3, 4, 5}
{a, b, c, d, e}
{
  
  1, 2, 3, 4, 5}
{
  
  1, 2, 3, 4, 5}
{
  
  1.1, 2.2, 3.3, 4.4, 5.5}
{
  
  1.1, 2.2, 3.3, 4.4, 5.5}
{aa, bb, cc, dd, ee, null}
{
  
  1, 2, 3, 4, 5}
{}
{}
[abc, def, xyz, null]
{
  
  1=aa, 2=bb, 3=cc, 4=null}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class ArrayUtils { 
   

    public static String toString(final Object array) {
        if (array == null) {
            return "{}";
        }
        return new ToStringBuilder().append(array).toString();
    }

    public static class ToStringBuilder { 
   
        private final StringBuffer buffer = new StringBuffer(512);
        private final ToStringStyle style = new ToStringStyle();

        public ToStringBuilder append(final Object obj) {
            style.append(buffer, obj);
            return this;
        }

        @Override
        public String toString() {
            return this.buffer.toString();
        }
    }

    public static class ToStringStyle { 
   
        private char arrayStart = '{';
        private char arrayEnd = '}';
        private String arraySeparator = ", ";

        public void append(final StringBuffer buffer, final Object value) {
            if (value == null) {
                appendNullText(buffer);
            } else {
                appendInternal(buffer, value);
            }
        }

        private void appendNullText(final StringBuffer buffer) {
            buffer.append("");
        }

        private void appendInternal(final StringBuffer buffer, final Object value) {
            register(value);
            try {
                if (value instanceof Collection<?>) {
                    appendDetail(buffer, (Collection<?>) value);
                } else if (value instanceof Map<?, ?>) {
                    appendDetail(buffer, (Map<?, ?>) value);
                } else if (value instanceof long[]) {
                    appendDetail(buffer, (long[]) value);
                } else if (value instanceof int[]) {
                    appendDetail(buffer, (int[]) value);
                } else if (value instanceof short[]) {
                    appendDetail(buffer, (short[]) value);
                } else if (value instanceof byte[]) {
                    appendDetail(buffer, (byte[]) value);
                } else if (value instanceof char[]) {
                    appendDetail(buffer, (char[]) value);
                } else if (value instanceof double[]) {
                    appendDetail(buffer, (double[]) value);
                } else if (value instanceof float[]) {
                    appendDetail(buffer, (float[]) value);
                } else if (value instanceof boolean[]) {
                    appendDetail(buffer, (boolean[]) value);
                } else if (value.getClass().isArray()) {
                    appendDetail(buffer, (Object[]) value);
                } else {
                    appendDetail(buffer, value);
                }
            } finally {
                unregister(value);
            }
        }

        private static final ThreadLocal<WeakHashMap<Object, Object>> REGISTRY =
                new ThreadLocal<>();

        private static Map<Object, Object> getRegistry() {
            return REGISTRY.get();
        }

        private static void register(final Object value) {
            if (value != null) {
                final Map<Object, Object> m = getRegistry();
                if (m == null) {
                    REGISTRY.set(new WeakHashMap<>());
                }
                getRegistry().put(value, null);
            }
        }

        static void unregister(final Object value) {
            if (value != null) {
                final Map<Object, Object> m = getRegistry();
                if (m != null) {
                    m.remove(value);
                    if (m.isEmpty()) {
                        REGISTRY.remove();
                    }
                }
            }
        }

        private void appendDetail(final StringBuffer buffer, final boolean[] array) {
            buffer.append(arrayStart);
            for (int i = 0; i < array.length; i++) {
                if (i > 0) {
                    buffer.append(arraySeparator);
                }
                appendDetail(buffer, array[i]);
            }
            buffer.append(arrayEnd);
        }

        private void appendDetail(final StringBuffer buffer, final byte[] array) {
            buffer.append(arrayStart);
            for (int i = 0; i < array.length; i++) {
                if (i > 0) {
                    buffer.append(arraySeparator);
                }
                appendDetail(buffer, array[i]);
            }
            buffer.append(arrayEnd);
        }

        private void appendDetail(final StringBuffer buffer, final short[] array) {
            buffer.append(arrayStart);
            for (int i = 0; i < array.length; i++) {
                if (i > 0) {
                    buffer.append(arraySeparator);
                }
                appendDetail(buffer, array[i]);
            }
            buffer.append(arrayEnd);
        }

        private void appendDetail(final StringBuffer buffer, final char[] array) {
            buffer.append(arrayStart);
            for (int i = 0; i < array.length; i++) {
                if (i > 0) {
                    buffer.append(arraySeparator);
                }
                appendDetail(buffer, array[i]);
            }
            buffer.append(arrayEnd);
        }

        private void appendDetail(final StringBuffer buffer, final int[] array) {
            buffer.append(arrayStart);
            for (int i = 0; i < array.length; i++) {
                if (i > 0) {
                    buffer.append(arraySeparator);
                }
                appendDetail(buffer, array[i]);
            }
            buffer.append(arrayEnd);
        }

        private void appendDetail(final StringBuffer buffer, final float[] array) {
            buffer.append(arrayStart);
            for (int i = 0; i < array.length; i++) {
                if (i > 0) {
                    buffer.append(arraySeparator);
                }
                appendDetail(buffer, array[i]);
            }
            buffer.append(arrayEnd);
        }

        private void appendDetail(final StringBuffer buffer, final double[] array) {
            buffer.append(arrayStart);
            for (int i = 0; i < array.length; i++) {
                if (i > 0) {
                    buffer.append(arraySeparator);
                }
                appendDetail(buffer, array[i]);
            }
            buffer.append(arrayEnd);
        }

        private void appendDetail(final StringBuffer buffer, final Collection<?> coll) {
            buffer.append(coll);
        }

        private void appendDetail(final StringBuffer buffer, final Map<?, ?> map) {
            buffer.append(map);
        }

        private void appendDetail(final StringBuffer buffer, final long[] array) {
            buffer.append(arrayStart);
            for (int i = 0; i < array.length; i++) {
                if (i > 0) {
                    buffer.append(arraySeparator);
                }
                appendDetail(buffer, array[i]);
            }
            buffer.append(arrayEnd);
        }

        private void appendDetail(final StringBuffer buffer, final Object value) {
            buffer.append(value);
        }

        private void appendDetail(final StringBuffer buffer, final Object[] array) {
            buffer.append(arrayStart);
            for (int i = 0; i < array.length; i++) {
                final Object item = array[i];
                if (i > 0) {
                    buffer.append(arraySeparator);
                }
                if (item == null) {
                    appendNullText(buffer);
                } else {
                    appendInternal(buffer, item);
                }
            }
            buffer.append(arrayEnd);
        }
    }
}

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/130863.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年4月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
PHP面对对象程序设计
类的封装是通过public、private、protected等关键字来实现的,可以很好地限制类中的属性和方法的访问权限。
白胡杨同学
2020/04/10
5900
ES6—class类详细教程(下)
上一期出了ES6中Class类用法详解的(上)半部分,以下是(下)半部分,需要复习上半部分的小伙伴可以点击文章末尾的“阅读原文”或者点击文中的超链接。
用户9999906
2022/09/26
7500
一万字ES6的class类,再学不懂,请来找我(语法篇)
上面这种写法跟传统的面向对象语言(比如 C++ 和 Java)差异很大,很容易让新学习这门语言的程序员感到困惑。
coder_koala
2021/11/12
3390
Java中final和static关键字总结
final修饰的类不可被继承,例如java.lang.Math就是一个 final类,不可被继承。
lyb-geek
2018/07/26
5260
PHP- 复合数据类型-对象的克隆和比较
在 PHP 中,我们可以使用clone关键字来克隆一个对象。克隆一个对象会创建一个新的对象,并将原对象的属性值复制到新对象中。例如,下面的代码创建了一个Person对象,并使用clone关键字克隆它:
堕落飞鸟
2023/04/25
4320
PHP- 复合数据类型-对象的属性(一)
在PHP中,对象的属性指的是类中定义的变量,它们存储在对象中,并且可以通过对象来访问和修改。属性通常是用来存储对象的状态信息,例如一个人的姓名、年龄等。对象的属性可以是公共的、私有的或受保护的。
堕落飞鸟
2023/04/25
6160
PHP- 复合数据类型-对象的特殊方法和属性
__construct() 方法:这个方法是在对象创建时自动调用的,用来初始化对象的属性。如果你没有显式地定义这个方法,PHP 会自动创建一个空的 __construct() 方法。
堕落飞鸟
2023/04/26
4360
类与继承
每个函数(普通函数、构造函数)都有一个prototype原型对象,每个prototype都有constructor属性,constructor指向函数本身 每个实例都有一个proto,指向构造函数的原型对象
用户7043603
2022/02/26
4650
php学习之类与对象的类的静态方法
当程序员需要对静态属性进行操作时,就需要定义静态方法处理,静态方法是专门操作静态属性的
吾爱乐享
2019/12/30
6270
php学习之类与对象的类的静态方法
PHP- 复合数据类型-对象的创建和销毁
在 PHP 中,我们使用new关键字来创建对象。创建对象时,会自动调用类的构造函数__construct()。例如,下面的代码创建了一个Person对象:
堕落飞鸟
2023/04/25
4700
PHP- 复合数据类型-对象的访问控制
在 PHP 中,我们可以使用访问控制关键字public、protected和private来控制对象的属性和方法的访问权限。这些关键字决定了哪些成员可以被外部访问,哪些成员只能在类内部访问。具体的访问控制规则如下:
堕落飞鸟
2023/04/26
4010
Java系列:关于关键字this和static
在C语言中,我们经常会遇到指针,也常常被指针所困扰,毕竟它经常惹程序员头疼。那么在Java中我们便方便多了,只是因为有了this.
小Bob来啦
2022/01/17
2180
Java系列:关于关键字this和static
PHP基础之面向对象篇
前面写的都是运算符、流程控制、排序查找等,下面说一说面向对象的一些内容。这是前面写的,有兴趣可以去看一看。 PHP入门之类型与运算符 PHP入门之流程控制 PHP入门之函数 PHP入门之数组 PHP基础之排序 PHP基础之查找 接下来写一下关于面向对象的内容。
雪痕@
2020/09/27
6650
PHP基础之面向对象篇
PHP 面向对象知识点
定义基本的类: 在类中我们可以定义各种数据成员和成员函数,其中public修饰的函数与变量可以在任何地方被调用,而private修饰的函数只能在本类中被调用子类不可调用,而protected修饰的则可以在本类和子类中被调用但不可以在外部调用.
王瑞MVP
2022/12/28
7630
PHP- 复合数据类型-对象
在PHP中,对象是一种复合数据类型,它允许开发者将相关的数据和行为封装在一个单独的实体中。对象通常被用来表示现实世界中的实体,例如人、汽车、房屋等。对象是基于类(class)来创建的,类是一个模板或蓝图,它定义了一组属性和方法,用于创建对象。
堕落飞鸟
2023/04/25
4080
PHP面向对象基础总结
近来参加了几场PHP工程师的面试,但是笔试题答得都不理想,回来总结了一下失败的原因,是没看PHP手册。几家公司的PHP基础面试题都可以在PHP手册上找到。哎,现在才知道最好的面试宝典是PHP手册。
用户7657330
2020/08/14
1.5K0
ES6——类(Class)
ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板。通过class关键字,可以定义类。 ES6 的class可以看作只是一个语法糖,它的绝大部分功能,ES5 都可以做到,新的class写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已。上面的代码用 ES6 的class改写,就是下面这样。
羊羽shine
2019/07/31
1K0
PHP.步步为营 | 类与面向对象 知识详析 与 运用实例
关于类的知识我们可以类比Java的语法去记忆, 类对象通过new关键字进行实例化, 实例化的对象通过-> 调用类成员;
凌川江雪
2019/03/15
1.1K0
PHP- 复合数据类型-对象的属性(二)
受保护的属性可以在类的内部和子类中被访问和修改,但不能在外部直接访问和修改。在类的定义中,使用protected关键字来定义受保护的属性。例如,下面的代码定义了一个Person类,其中包含一个受保护的属性$email
堕落飞鸟
2023/04/25
4340
谈谈你是怎么理解面向对象的?
一道经典的面试题,当面试官问你,你是怎么理解面向对象的即OOP,你应该怎么回答呢?
PHP学习网
2022/08/03
7640
相关推荐
PHP面对对象程序设计
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验