У меня есть объект с именем Elementfisa, который содержит значения (id, Post, Sarcina). Теперь Post (Int Id, String Nume, String Tip) и Sarcina (Int Id, String Desc) также являются объектами. У меня есть список всех элементов, которые я добавил как Elementfisa, и я хочу получить в отдельном списке частоту каждой Сарсины, которую содержит каждая Elementfisa. Это мой код прямо сейчас:Частота значения в списке объектов
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 список содержит все Sarcina от каждого Elementfisa, список частот будет показывать 0 в каждой позиции. Что я должен изменить, чтобы каждая позиция отображала правильное количество случаев?
ли efuri пусто? – Moira
Нет, он содержит объекты Elementfisa (id, Post, Sarcina) – Artyomska
Вы можете заменить 'if (nr == 0)' на 'if (! Sarcini.contains (i.getSarcina())) и устранить' nr' код. Кроме того, вы переопределили 'equals()'? – Moira