Как избежать перезаписи списка <Object>внутри for (Object []) картой - PullRequest
0 голосов
/ 05 мая 2020

У меня есть список типа List <Object []>, который динамически загружается из запроса к базе данных. Как можно исправить и избежать того, что при каждой итерации цикла For (Object [] ..) уже введенные данные перезаписываются последним значением списка карт в targetList.add (map);


Это результат запроса, который я загружаю из базы данных

просмотр изображения


Это метод, при котором полученный список преобразуется в список типа Map

@GetMapping("/teacher-social-media3")
public ResponseEntity<?> sqlObjectNative(){

    List<Object[]> listRecibid = teacherSocialMediaServ.sqlObjectMany();
    List<Object> targetList = new LinkedList<Object>();     

    Map<String, Object> map = new LinkedHashMap<String, Object>(); /*Map<String, Object> map = new HashMap<String, Object>();*/         


    if(listRecibida != null && listRecibida.size()>0 ){   
        for(Object[] object: listRecibida ) {   
            map.put("Id_teacher_social_media", object[0]);              
            map.put("Id_teacher_fk", object[1]);
            map.put("Id_social_media_fk", object[2]);
            map.put("Nickname", object[3]);
            map.put("Id_teacher", object[4]);
            map.put("Name_teacher", object[5]);
            map.put("Id_social_media", object[6]);
            map.put("getName", object[7]);
            map.put("Icon", object[8]);                                             

            targetList.add(map);
        }
    }else {
        map.put("MESSAJE", "THERE ARE NO RECORDS ON BD");
        return new ResponseEntity<Map<String, Object>>(map, HttpStatus.NOT_FOUND);
    } //return new ResponseEntity<Map<String, Object>>(map, HttpStatus.OK);             
    return new ResponseEntity<>(targetList, HttpStatus.OK);     
}

Как вы можете видеть результат списка, все значения перезаписываются последним, у которого был список карт внутри цикла For (Object [] ..)

[
    {
        "Id_teacher_social_media": 12,
        "Id_teacher_fk": 6,
        "Id_social_media_fk": 8,
        "Nickname": "gamers rela",
        "Id_teacher": 6,
        "Name_teacher": "Manuelo",
        "Id_social_media": "man",
        "getName": 8,
        "Icon": "VideoJuegos"
    },
    {
        "Id_teacher_social_media": 12,
        "Id_teacher_fk": 6,
        "Id_social_media_fk": 8,
        "Nickname": "gamers rela",
        "Id_teacher": 6,
        "Name_teacher": "Manuelo",
        "Id_social_media": "man",
        "getName": 8,
        "Icon": "VideoJuegos"
    },
    {
        "Id_teacher_social_media": 12,
        "Id_teacher_fk": 6,
        "Id_social_media_fk": 8,
        "Nickname": "gamers rela",
        "Id_teacher": 6,
        "Name_teacher": "Manuelo",
        "Id_social_media": "man",
        "getName": 8,
        "Icon": "VideoJuegos"
    },
    {
        "Id_teacher_social_media": 12,
        "Id_teacher_fk": 6,
        "Id_social_media_fk": 8,
        "Nickname": "gamers rela",
        "Id_teacher": 6,
        "Name_teacher": "Manuelo",
        "Id_social_media": "man",
        "getName": 8,
        "Icon": "VideoJuegos"
    },
    {
        "Id_teacher_social_media": 12,
        "Id_teacher_fk": 6,
        "Id_social_media_fk": 8,
        "Nickname": "gamers rela",
        "Id_teacher": 6,
        "Name_teacher": "Manuelo",
        "Id_social_media": "man",
        "getName": 8,
        "Icon": "VideoJuegos"
    },
    {
        "Id_teacher_social_media": 12,
        "Id_teacher_fk": 6,
        "Id_social_media_fk": 8,
        "Nickname": "gamers rela",
        "Id_teacher": 6,
        "Name_teacher": "Manuelo",
        "Id_social_media": "man",
        "getName": 8,
        "Icon": "VideoJuegos"
    },
    {
        "Id_teacher_social_media": 12,
        "Id_teacher_fk": 6,
        "Id_social_media_fk": 8,
        "Nickname": "gamers rela",
        "Id_teacher": 6,
        "Name_teacher": "Manuelo",
        "Id_social_media": "man",
        "getName": 8,
        "Icon": "VideoJuegos"
    },
    {
        "Id_teacher_social_media": 12,
        "Id_teacher_fk": 6,
        "Id_social_media_fk": 8,
        "Nickname": "gamers rela",
        "Id_teacher": 6,
        "Name_teacher": "Manuelo",
        "Id_social_media": "man",
        "getName": 8,
        "Icon": "VideoJuegos"
    },
    {
        "Id_teacher_social_media": 12,
        "Id_teacher_fk": 6,
        "Id_social_media_fk": 8,
        "Nickname": "gamers rela",
        "Id_teacher": 6,
        "Name_teacher": "Manuelo",
        "Id_social_media": "man",
        "getName": 8,
        "Icon": "VideoJuegos"
    },
    {
        "Id_teacher_social_media": 12,
        "Id_teacher_fk": 6,
        "Id_social_media_fk": 8,
        "Nickname": "gamers rela",
        "Id_teacher": 6,
        "Name_teacher": "Manuelo",
        "Id_social_media": "man",
        "getName": 8,
        "Icon": "VideoJuegos"
    },
    {
        "Id_teacher_social_media": 12,
        "Id_teacher_fk": 6,
        "Id_social_media_fk": 8,
        "Nickname": "gamers rela",
        "Id_teacher": 6,
        "Name_teacher": "Manuelo",
        "Id_social_media": "man",
        "getName": 8,
        "Icon": "VideoJuegos"
    },
    {
        "Id_teacher_social_media": 12,
        "Id_teacher_fk": 6,
        "Id_social_media_fk": 8,
        "Nickname": "gamers rela",
        "Id_teacher": 6,
        "Name_teacher": "Manuelo",
        "Id_social_media": "man",
        "getName": 8,
        "Icon": "VideoJuegos"
    }
]

Большое спасибо за ваше мнение, что вы могу поделиться !!

1 Ответ

1 голос
/ 05 мая 2020

Создавать новую HashMap каждый раз в начале для l oop.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...