2015-11-17 40 views
-1
System.out.println("elements="+maptabcolname.values()); 

顯示結果:元素= [[AA,BB,CC,DD]和如何在java中查找Hashmap中元素的個數?

System.out.println("count elements="+maptabcolname.size()); 

顯示結果:計算元素= 1(在這裏,我想4中,由於我具有由逗號分隔的4種元素) 注意:這裏maptabcolname是一個hashmap。 有什麼幫助嗎? (我使用JDK 1.7)

+3

你的hashmap是否包含** ** ** ** ArrayList ** ** ** **元素?因爲'maptabcolname'只包含1個元素,所以它是 –

+0

。 – Satya

+0

'size'將返回正確數量的鍵值對。你能發佈實際顯示此行爲的完整代碼嗎? – resueman

回答

1

嘗試做System.out.println("elements="+maptabcolname.values().size());

.values()返回值的地圖的陣列。既然你想要這些值的數量,.size()將爲你完成。

+1

'maptabcolname.values()。size()'和'maptabcolname.size()'是同一件事。 – Andreas

+0

感謝您的建議。它顯示結果:count elements = [4]。但我想要整數。你可以幫我嗎 ? –

1
System.out.println("elements="+maptabcolname.values().size()); 

應工作

編輯:

沒有任何花哨的計數:

System.out.println(Integer.valueOf(maptabcolname.values().toString().replace("[", "").replace("]", ""))); 
+0

'maptabcolname.values()。size()'和'maptabcolname.size()'是一回事。 – Andreas

+0

感謝您的建議。它顯示的結果是:count elements = [4]。但我想要整數。你可以幫我嗎 ? –

+0

@IndranilBanerjee看到我的編輯 –

0

你的輸出顯示兩個方括號,所以Map包含值爲1,這是一個List 4值。

爲了確認,請嘗試:

for (Object value : maptabcolname.values()) 
    System.out.println(value.getClass().getName()); 

這將打印的值的類型,例如java.util.ArrayList

0

據我所知,你有一張地圖,其中的值是列表,並希望這些列表的大小的總和,這是正確的嗎?

一個簡單的方法可以解決這個問題:

public int count(Map<?, List<?>> map) { 
    return map.values().stream().mapToInt(List::size).sum(); 
} 
0

我得到了答案:(很簡單)

以一個ArrayList的再抹上它,找到ArrayList中的大小。這是:

ArrayList count = new ArrayList(); 
count=(ArrayList) maptabcolname.get("k1"); //here "k1" is Key 
System.out.println("number of elements="+count.size()); 

它會顯示大小。 (給建議)。它正在工作。