Как добавить элемент в hashmap объекта, List <Object> - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть список от dao, я хочу поместить этот список в HashMap>, мой список может содержать сервис, который имеет несколько параметров, таких как serviceId = 3. В моем окончательном HashMap результат выглядит так: {Service 1=[100,A],Service 2=[101,A],Service 3=[Parameter[102,B],Parameter[103,B],Parameter[104,C]]}.

serviceId   paramId   type
 1            100      A
 2            101      A
 3            102      B
 3            103      B
 3            104      C

Сервис. java

private int id;
//Getters+Setters

Параметр. java

private int id;
private String type;
//Getters+Setters

Тест. java

 List result = dao.getServiceParam();
HashMap<Service,List<Parameter>> mapList = new HashMap<Service, List<Parameter>>();   
if(!result.isEmpty()) {             
for (int i=0; i< result.size(); i++) {
    Object[] line = (Object[])result.get(i);        
    if ((BigDecimal) line[0]!=null) {

    }
    }
    }      

1 Ответ

0 голосов
/ 06 апреля 2020
if ((BigDecimal) line[0]!=null && line.length>2) {

    Service serv = new Service((Integer) line[0]);
    Parameter param = new Parameter((Integer)line[1],(String) line[2]);
    List<Parameter> paramList=mapList.get(serv);
    if (paramList==null){
        paramList = new LinkedList<Parameter>();
    }

    paramList.add(param);

    mapList.put(serv, paramList);
}

Вы можете заменить свой пустой, если с кодом выше. Это должно служить вашей цели, я верю. но для запуска приведенного выше кода вы должны соответствовать следующим условиям.

  1. ваш класс Parameter и Service должен иметь конструктор.
  2. вы должны переопределить hashcode и методы equals на основе атрибута id класса обслуживания
  3. Если вы ожидаете нулевое значение в любом из полей. Пожалуйста, обращайтесь с этим.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...