2
收件接受整數List
和整數作爲參數的Set
方法counts
,並且從每個值集合中的返回地圖以在該值的出現次數名單。對於每個循環的工作原理,但迭代器不
我的解決方案#1:
public static Map<Integer, Integer> counts(List<Integer> list, Set<Integer> set) {
Map<Integer, Integer> map = new TreeMap<Integer, Integer>();
Iterator<Integer> i = list.iterator();
for(Integer element : set) {
int count = 0;
for(Integer sub : list) {
if(sub == element) {
count++;
}
}
map.put(element, count);
}
return map;
}
我的解決方案#2:
public static Map<Integer, Integer> counts(List<Integer> list, Set<Integer> set) {
Map<Integer, Integer> map = new TreeMap<Integer, Integer>();
Iterator<Integer> i = list.iterator();
for(Integer element : set) {
int count = 0;
while(i.hasNext()) {
if(i.next() == element) {
count++;
}
}
map.put(element, count);
}
return map;
}
輸入:
list: [4, -2, 3, 9, 4, 17, 5, 29, 14, 87, 4, -2, 100]
set: [-2, 4, 29]
預期輸出:
{-2=2, 4=3, 29=1}
輸出爲#1:
{-2=2, 4=3, 29=1}
輸出爲#2:
{-2=0, 4=3, 29=0}
的第一個工程,但第二個沒有。爲什麼?他們基本上是一樣的東西,還是我錯過了什麼?另外,將使用for
循環工作來遍歷列表?如果不是,爲什麼?
什麼不同的方法做還是不做,你有什麼期望的輸出? – Serdalis
您確定要參考比較嗎? – nhahtdh
在一種情況下,您的迭代器在外部循環內被隱式聲明,在另一種情況下,它在外部顯式聲明... – assylias