java打印数组内容

java打印数组内容在java中直接输出数组只能得到引用地址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打印数组内容publicstaticvoidmain(Stringargs

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

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

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

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

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}
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.net/130863.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 皮尔逊相似度计算的例子(R语言)

    皮尔逊相似度计算的例子(R语言)

    2022年1月13日
    39
  • java线程池拒绝策略_java线程池拒绝策略有哪些?

    java线程池拒绝策略_java线程池拒绝策略有哪些?小伙伴们知道java中线程池拒绝策略有哪些吗?这是java线程池必须知道的基础之一,下面就一起来看看吧。在java线程池中,有着这么四种拒绝策略:1)、AbortPolicy(默认)直接抛出RejectedExecutionException异常阻止系统正常运行。publicstaticclassAbortPolicyimplementsRejectedExecutionHandler{…

    2022年6月17日
    25
  • mysql数据库设计工具--mysql workbench

    mysql数据库设计工具--mysql workbench关键字:Database     在windows下,有一些不错的数据库设计工具,像Powerdesign,但在linux,找来找去,还没有发现一款好的设计工具,即使找到一个dbdesign4,但死活编译不过去,最后,还是在mysql的官网上找到了mysqlworkbench.下面是截图我是通过编译源码来安装的,

    2022年7月11日
    23
  • cmake编译时遇到的问题解决

    cmake编译时遇到的问题解决

    2022年1月21日
    104
  • c++–继承

    c++–继承

    2021年9月29日
    35
  • 分布式数据存储系统:CAP理论

    分布式数据存储系统:CAP理论分布式数据存储:CAP理论前言什么是CAP?CAP选择策略及应用保CA弃P保CP弃A保AP弃C对比分析知识扩展:CAP和ACID的“C”“A”是一样的吗?总结前言分布式系统处理的关键对象是数据,而数据其实是与用户息息相关的。CAP理论指导分布式系统的设计,以保证系统的可用性、数据一致性等特征。比如电商系统中,保证用户可查询商品数据、保证不同地区访问不同服务器查询的数据是一致的等。什么是CAP?假设某电商,在北京、杭州、上海三个城市建立了仓库,同时建立了对应的服务

    2025年6月10日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号