2017-03-13 76 views
0

這裏我們可以看到Map.Entry的toString()方法在運行。 由於Map.Entry是一個接口,定義在哪裏。由於Map.entry是一個接口,Map.Entry的toString()方法實現在哪裏定義?

import java.util.*; 
import java.lang.*; 
import java.io.*; 



class Dog 
{ 
    public int i; 
    public int hashCode() 
     { 
      return i%3; 
     } 
    Dog(int i) 
    { 
     this.i = i; 
    } 

    public String toString() 
    { 
     return i + "" ; 
    } 

} 
class ShellClass 
{ 
    public static void main (String[] args) throws java.lang.Exception 
    { 
     HashMap m = new HashMap(5,(float)0.8); 
     for(int i=1; i<=4; i++) 
     { 
      m.put((new Dog(i)),"dog"); 
     } 

     System.out.println(m); // line1 
     Set entrySet = m.entrySet(); 
     System.out.println(entrySet); // line2 
     Iterator itr = entrySet.iterator(); 
     while(itr.hasNext()) 
     { 
      Map.Entry element = (Map.Entry)itr.next(); 
      System.out.println(element); // line3 
     } 
    } 

} 

我得到以下輸出:

{3=dog, 1=dog, 4=dog, 2=dog} //output by line 1 
[3=dog, 1=dog, 4=dog, 2=dog] //output by line 2 Map.Entry toString in action 
3=dog // output by line 3 (Map.Entry toString in action) 
1=dog // output by line 3 (Map.Entry toString in action) 
4=dog // output by line 3 (Map.Entry toString in action) 
2=dog // output by line 3 (Map.Entry toString in action) 

能否請你分不清哪裏是Map.Entry的toString()方法來實現

回答

1

在我的參考實現的Java標準庫,有在HashMap內的一個靜態內部類,暗示了Map.Entry接口。

那個內在的等級,無論好壞,都是「也」,叫做Entry。您可以看到它here。它的toString implementation看起來像這樣:

 public final String toString() { 
     return getKey() + "=" + getValue(); 
    }  
+0

感謝您的回答pnkfelix – shubh

相關問題