2012-01-04 291 views
4

我想創建5-6個類,我將值存儲在hashmap中的第一類&我想從第4個,第5個&第6個類中調用它。如何獲得此任何代碼片段或示例來實現此操作將會有所幫助,由於如何從java中的其他類調用hashmap及其值?

+1

什麼是「5-6」?這是功課嗎? – 2012-01-04 06:23:24

+1

我認爲你的問題不清楚。更多解釋是有幫助的。 – 2012-01-04 06:24:16

+0

你能否澄清你的問題好一點?你自己嘗試過什麼嗎? – 2012-01-04 06:24:57

回答

10
public class Example { 

    private HashMap<String, String> hashmap = new HashMap<String, String>(); 

    public HashMap<String, String> getHashmap() { 
     return hashmap; 
    } 

    public void setHashmap(HashMap<String, String> hashmap) { 
     this.hashmap = hashmap; 
    } 
} 

public class AnotherClass { 

    public static void main(String args[]) { 
     Example ex = new Example(); 
     HashMap<String, String> hm = ex.getHashmap(); 
    } 

} 
+1

我試過這種方式,它沒有工作。我想念這裏somethin.I獲取所有的主類哈希值,但是當Itry在另一個類中調用時它是空的.. – Karthik 2012-01-04 09:06:40

0

你應該使用getter和setter方法的HashMap中。

private HashMap h = null; 
//instantiate hashmap in the constructor 
public ... 
//add value to hashmap 
public void add(Object value) 
{ 
    h.put(value);//eventually cast value or declare it as you did it in the hashmap 
} 

//get hashmap 
public HashMap getMap() 
{ 
    return h; 
} 

//set hashmap 
public void setMap(HashMap hm) 
{ 
    h=hm; 
}... 
0

兩種合理的方法。

  1. 有一個公共獲取地圖。 Class5會調用class1.getMap()。doSomething()。沒有太多的工作(好),外面的班級可以做任何他們想要的地圖,例如清除(),這可能會或可能不會很好。

  2. 爲地圖編寫單獨的方法,例如putIntoMap(),removeFromMap()等。更多的工作,但你可以限制外人可以做的事情。如果你不希望它們能夠清除(),不要寫一個ckearMap()方法。

purists有一個「德米特法」,說總是做選項2,但恕我直言,往往是矯枉過正。

相關問題