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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • opencv图像角点提取

    opencv图像角点提取opencv角点检测(二)改进的Harris角点检测算法harris角点检测算法的结果一定程度上取决于系数k,有人对Harris的角点检测算法进行了改进,直接利用像素点协方差矩阵的特征值提取角点。而且不在进行非极大值抑制,而是采用一种容忍距离的形式,在角点的一定范围内只有一个角点。具体原理:首先计算图像每个像素点的协方差矩阵,并求取对应的特征值,将最小的特征值最大的那个像素点作为第

    2022年8月30日
    0
  • idea 2021.03.02 激活码(最新序列号破解)

    idea 2021.03.02 激活码(最新序列号破解),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    437
  • 微软日语输入法使用方法「建议收藏」

    微软日语输入法使用方法「建议收藏」微软日语输入法使用方法:输入时,当打上一个假名的罗马字时,它将自动变成对应的假名,如果是输入假名或标点,按回车即可。如果是输入日语中的汉字,那么就在输入汉字的假名以后按空格键。就像用汉字的拼音输入法一样,可能会有重码,再按空格键,它将切换到下一个,如果再按空格键,它将弹出选择框,选择好后,按回车确定。输入法有自动记忆功能,即最近选用过的词会自动列在最前面。 假名-罗马字对照表: あア

    2022年8月30日
    3
  • [行为识别论文详解]TSN(Temporal Segment Networks)[通俗易懂]

    [行为识别论文详解]TSN(Temporal Segment Networks)[通俗易懂]摘要本文旨在设计有效的卷积网络体系结构用于视频中的动作识别,并在有限的训练样本下进行模型学习。TSN基于two-stream方法构建。论文主要贡献:提出了TSN(TemporalSegmentNetworks),基于长范围时间结构(long-rangetemporalstructure)建模,结合了稀疏时间采样策略(sparsetemporalsamplingstrat…

    2022年6月21日
    52
  • UFT录制

    UFT录制在惠普实训学习了UFT(UnifiedFunctionalTesting),是一种自动化测试工具,以VBScript为内嵌语言。打开UFT主界面,选择菜单file/new或file/open可以新建或打开UFT测试。在新建的测试界面打开action,使用HP自带的飞机订票系统软件,打开飞机订票系统,然后点击录制record,弹出窗口选择recordandruntesting,单击OK按钮

    2022年5月23日
    78
  • 谷歌chrome运行activeX控件

    谷歌chrome运行activeX控件在谷歌chrome浏览器下,安装IE_Tab_Multi_extension_1_0_0_1控件即可具体操作:将IE_Tab_Multi_extension_1_0_0_1拖入谷歌浏览器然后点击:添加即可谷歌浏览器不能直接用activeX原因:因为Activex是由微软开发,因而目前只支持原生态支持的IE,最新版Edge已经不再支持了。其他浏览器想要支持activex,需要额外做一些设置或安装补丁包,其中谷歌浏览器的话,需要安装IE-Tab-Multi控件IE_Tab_Multi_exte

    2022年5月14日
    451

发表回复

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

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