开发者社区> 问答> 正文

Java中关于Vector句柄的问题

这段代码中:
import java.util.*;
class CrashJava{
​public static void main(String[] args) ​{
​ ​Vector v = new Vector();
​ ​for(int i = 0; i < 10; i++)
​​​v.addElement(new CrashJava());
​​System.out.println(v);
​}
}
为什么打印出的是Vector中的所有元素的地址呢?v不是只是指向列表的首地址吗,为什么不需要用for就会打印出所有的呢?而如果要打印出它们的内容,则需要用for(...)呢?

展开
收起
蛮大人123 2016-02-19 16:30:34 1985 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    Vector是继承了抽象类并且实现了List接口的线程安全类,当用户打印对象的时候,实际上调用的是Vector的toString()方法,以下是toString()方法的实现

    public String toString() {
     Iterator i = iterator();
     if (! i.hasNext())
     return "[]";
    StringBuilder sb = new StringBuilder();
    sb.append('[');
    for (;;) {
        E e = i.next();
        sb.append(e == this ? "(this Collection)" : e);
        if (! i.hasNext())
        return sb.append(']').toString();
        sb.append(", ");
    }
    }

    从代码中可以看出,实际上是将Vector内部的元素连接并打印出来的

    2019-07-17 18:44:54
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
阿里云数据中台电信行业数据模型白皮书 立即下载
阿里云数据中台零售数据模型白皮书 立即下载
消电行业数据中台解决方案白皮书 立即下载