小白教程

 找回密码
 立即注册
查看: 10958|回复: 6

为什么ArrayList直接输出不是一个内存地址,而是数组元素...

[复制链接]

1

主题

1

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2021-5-25 13:20:28 | 显示全部楼层 |阅读模式


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

1

主题

2

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2021-5-26 14:12:28 | 显示全部楼层
你看下ArrayList ToString()的源码,是不是重写了ToString()
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-5-27 05:27:39 | 显示全部楼层
ArrayList 后面是string 类型的啊。输出不就是string 类型的吗....
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-5-29 02:45:58 | 显示全部楼层
  1.    /**
  2.      * Returns a string representation of this collection.  The string
  3.      * representation consists of a list of the collection's elements in the
  4.      * order they are returned by its iterator, enclosed in square brackets
  5.      * (<tt>"[]"</tt>).  Adjacent elements are separated by the characters
  6.      * <tt>", "</tt> (comma and space).  Elements are converted to strings as
  7.      * by {@link String#valueOf(Object)}.
  8.      *
  9.      * @return a string representation of this collection
  10.      */
  11.     public String toString() {
  12.         Iterator<E> it = iterator();
  13.         if (! it.hasNext())
  14.             return "[]";

  15.         StringBuilder sb = new StringBuilder();
  16.         sb.append('[');
  17.         for (;;) {
  18.             E e = it.next();
  19.             sb.append(e == this ? "(this Collection)" : e);
  20.             if (! it.hasNext())
  21.                 return sb.append(']').toString();
  22.             sb.append(',').append(' ');
  23.         }
  24.     }
复制代码
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-5-29 16:17:01 | 显示全部楼层
你可以直接输出的是这个类覆盖了toString方法,它打印出了地址这个类覆盖了toString方法,
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-5-31 11:55:12 | 显示全部楼层
要打印一个对象,我们调用对象本身的toString方法。默认的toString方法是输出地址。一些类重写toString方法来输出内容。ArrayList覆盖toString方法,以便输出ArrayList的内容
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-6-1 05:11:45 | 显示全部楼层
我想他想说的是打印出数组为什么它是一个内存地址
如果想直接打印Arrays,可以使用Arrays. tostring (arr)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|小白教程 ( 粤ICP备20019910号 )

GMT+8, 2024-9-20 12:26 , Processed in 0.028490 second(s), 30 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表