Я сравниваю arrayList с самим собой, используя foreach.У меня есть arrayList, содержащий советы для официантов, у каждого объекта есть дата "dd-MM-гггг" и сумма (двойная). Теперь я хочу добавить все транзакции за один день, поэтому я получаю итоговую сумму за день, который можетбыть разделенным между официантами.Без дубликатов.Я осмотрел все, особенно здесь, но я не могу найти решение.Я действительно надеюсь, что вы, ребята, можете помочь, я знаю, что это немного неловко, потому что проблема настолько проста, но я работаю над этим уже пару дней, и я застрял.
ЯУ меня был более длинный алгоритм, но он не работал, и я не мог найти какие-либо решения в Интернете, поэтому я разбил все это на его основные компоненты и проверил для каждого шага, и довольно рано возникла эта проблема: я использую локальныйarrayList, чтобы убедиться, что я не сравниваю одни и те же дни снова и снова.Кажется, что if (!readyMade.contains (tips1.getTime ()), за которым следует ужеMade.add (tips1.getTime ()), создает дубликаты, что, на мой взгляд, не имеет смысла. Все, что я хочу, - это добавить все транзакции дляв тот же день из того же arrayList.
public void dist () {
double day = 0;
List<String> alreadyMade = new ArrayList<>();
for (Tips tips : data.getTips()) {
for (Tips tips1 : data.getTips()) {
if(tips.getTime().equals(tips1.getTime())) {
if (!alreadyMade.contains(tips1.getTime())){
alreadyMade.add(tips1.getTime());
day += tips.getTips();
}
}
}
System.out.println(day);
day = 0;
}
}
Я хотел, чтобы печать выполнялась в течение одного дня, но она печатает много чисел, которые нене имеет смысла