Я трачу слишком много времени, чтобы читать о list - collection в java, и я не могу найти лучшего решения, чем Arraylist, для сбора данных из массива JSON и редактирования данных, если они существуют по ключу в mylist или, если не существуют, просто поместите модель в mylist. Я застреваю в двух разных проектах над одной и той же проблемой.
Кто-нибудь может сказать мне, где я перепуталась? Вот код для первой ситуации
if (kolekcija.get(Id).isEmpty()){
kolekcija.get(Id).add(model);
} else {
try {
boolean isEmptyModel = false;
for (int i = 0; i < kolekcija.get(Id).size(); i++){
if (kolekcija.get(Id).get(i).getName.equals(model.Name)) {
double dva = kolekcija . get (Id).get(i).getSum();
kolekcija.get(Id).get(i).setSum(dva + 1.00);
} else {
isEmptyModel = true;
}
}
if (isEmptyModel) {
kolekcija.get(Id).get(i).add(model);
isEmptyModel = false;
}
} catch (Exception e) {
e.printStackTrace();
}
}
А вот код для второй ситуации
// inside for loop to collect json object
MyModel model = new MyModel();
model.setregister(reg);
boolean isEmptyModel = false;
if (listamodela.size() == 0){
listamodela.add(model);
}
for(int i = 0; i < listamodela.size(); i++ ){
if (listamodela.get(i).getregister().equals(reg)) {
listamodela.get(i).addValueToList(value);
} else {
isEmptyModel = true;
}
}
if (isEmptyModel){
listamodela.add(model);
isEmptyModel = false;
}
Я пробовал несколько решений - содержит, но у меня всегда одна и та же проблема.




Надеюсь, я правильно понял вопрос, вы пытаетесь сохранить данные по ключу, и если ключ уже существует в коллекции, переопределить эти данные / продолжить, не отменяя эти данные?
В этом случае вы можете использовать коллекцию Map вместо коллекции списка. Коллекция Map сопоставляет ключ и значение, и ключ не может повторяться дважды (ключи хранятся в коллекции Set, что означает, что дублирование не допускается).
Я бы посоветовал почитать о Map и HashMap.