集合框架-ArrayList集合的toString()方法原始碼解析
集合的toString方法原始碼解析
程式碼:
Collection c = new ArrayList();
c.add("hello");
c.add("world");
c.add("java");
System.out.println(c);
為什麼c輸出的不是地址值呢?
A:Collection c = new ArrayList();
這是多型,所以輸出c的toString()方法,其實是輸出ArrayList的toString()
B:看ArrayList的toString()
而我們在ArrayList裡面卻沒有發現toString()。
以後遇到這種情況,也不要擔心,你認為有,它卻沒有,就應該去它父親裡面看看。
C:toString()的方法原始碼
public String toString() {
Iterator<E> it = iterator(); //集合本身呼叫迭代器方法,得到集合迭代器
if (! it.hasNext())
return "[]";
StringBuilder sb = new StringBuilder();
sb.append('[');
for (;;) {
E e = it.next(); //e=hello,world,java
sb.append(e == this ? "(this Collection)" : e);
if (! it.hasNext())
//[hello, world, java]
return sb.append(']').toString();
sb.append(',').append(' ');
}
}
相關文章
- 集合的toString()方法原始碼解析原始碼
- 集合-ArrayList 原始碼解析原始碼
- Java 集合框架------ArrayList原始碼分析Java框架原始碼
- Java 集合框架 ArrayList 原始碼剖析Java框架原始碼
- Java集合之ArrayList原始碼解析Java原始碼
- 集合框架原始碼學習之ArrayList框架原始碼
- Java集合-ArrayList原始碼解析-JDK1.8Java原始碼JDK
- 集合框架-TreeSet的add()方法的原始碼解析框架原始碼
- 集合框架-HashSet集合的add()方法的原始碼框架原始碼
- 【Java集合】ArrayList原始碼分析Java原始碼
- JAVA集合:ArrayList原始碼分析Java原始碼
- 【集合框架】JDK1.8原始碼分析之ArrayList(六)框架JDK原始碼
- 集合原始碼分析[3]-ArrayList 原始碼分析原始碼
- Java集合原始碼剖析——ArrayList原始碼剖析Java原始碼
- 【Java集合原始碼剖析】ArrayList原始碼剖析Java原始碼
- java集合原始碼分析(三):ArrayListJava原始碼
- 集合框架2- ArrayList框架
- Java集合框架(一)-ArrayListJava框架
- Java 集合框架(二)—— ArrayListJava框架
- 【Java集合原始碼剖析】Java集合框架Java原始碼框架
- Java集合框架之 Java HashMap 原始碼解析Java框架HashMap原始碼
- Java集合原始碼學習(2)ArrayListJava原始碼
- JAVA ArrayList集合底層原始碼分析Java原始碼
- Java集合乾貨——ArrayList原始碼分析Java原始碼
- JDK7集合框架原始碼學習-ArrayList(0)JDK框架原始碼
- JDK7集合框架原始碼學習-ArrayList(1)JDK框架原始碼
- 純手寫Arraylist集合框架框架
- 集合框架-集合的巢狀遍歷(HashMap巢狀ArrayList)框架巢狀HashMap
- 集合框架-集合的巢狀遍歷(ArrayList巢狀HashMap)框架巢狀HashMap
- 集合框架-ArrayList集合儲存自定義物件的排序案例框架物件排序
- 死磕 java集合之ArrayList原始碼分析Java原始碼
- Java集合乾貨1——ArrayList原始碼分析Java原始碼
- JDK7集合框架原始碼學習-ArrayList(4)SubListJDK框架原始碼
- JDK7集合框架原始碼學習-ArrayList(3)迭代器JDK框架原始碼
- JDK7集合框架原始碼學習-ArrayList(2)迭代器JDK框架原始碼
- Java 集合 ArrayList 原始碼分析(帶著問題看原始碼)Java原始碼
- Java集合框架原始碼剖析:ArrayDequeJava框架原始碼
- 集合-ConcurrentLinkedQueue 原始碼解析原始碼