我有一個名爲Elementfisa的實體,它包含值(id,Post,Sarcina)。現在,Post(Int Id,String Nume,String Tip)和Sarcina(Int Id,String Desc)也是實體。我列出了作爲Elementfisa添加的所有元素,並且我想單獨列出每個Elementfisa包含的每個Sarcina的頻率。這是我的代碼現在:實體列表中的值的頻率
int nr=0;
List<Integer> frecv=new ArrayList<Integer>();
List<Sarcina> sarcini = new ArrayList<>();
List<Elementfisa> efuri=findEFAll();
for (Elementfisa i : efuri)
{
nr=0;
for (Sarcina s : sarcini)
if (s.equals(i.getSarcina()))
nr=1;
if (nr==0)
{
int freq = Collections.frequency(efuri, i.getSarcina());
sarcini.add(i.getSarcina());
frecv.add(freq);
}
}
(findEFAll()返回包含在一個HashMap中的每一個元素從資源庫) 但由於某些原因,而sarcini列表包含所有從每一個Elementfisa的藤黃,頻率列表將在每個位置顯示0。我應該改變什麼,所以每個位置都應該顯示正確的發生次數?
是efuri空? – Moira
不,它包含Elementfisa實體(id,Post,Sarcina) – Artyomska
你可以用if(!sarcini.contains(i.getSarcina()))替換'if(nr == 0)''並且消除'nr'碼。另外,你是否重寫了'equals()'? – Moira