Производительность зацикливания arrayList vs POJO (JAVA) - PullRequest
0 голосов
/ 05 декабря 2018

Мой вопрос касается производительности во время обхода ArrayList по сравнению с POJO, то есть если я возьму данные из базы данных и зарядлю их в ArrayList, а затем в POJO:

Это так?более эффективно (на уровне обработки) обходить ArrayList (position [0], [1], ...) или POJO (pojo.nombre, pojo.lastname, ..)?

Пример зацикливанияArrayList:

private List<Object[]> _listaClientes = new ArrayList<Object[]>();//create arrayList
public void cargaClientes(){
    try{
        _listaClientes = new ArrayList<>();
        //take data from DB:
        _listaClientes = ctrClientes.getData();

        //Loop arrayList:
        for(Object[] obj : _listaClientes){
            System.out.println(obj[0]);//id
            System.out.println(obj[1]);//name
            //...
        }
    }catch(Exception e){
        e.printStackTrace();
    }
}

Пример зацикливания POJO:

private List<Cliente> listaClientes;
public void cargaClientes(){
    try{
        //take data from DB:
        listaClientes = ctrClientes.getDataPojo();

        //looping POJO
        Iterator<Cliente> itrCli = listaClientes.iterator();
        while(itrCli.hasNext()){
            Cliente cli = itrCli.next();
            System.out.println(cli.cedula);//id
            System.out.println(cli.nombre);//name
            //...
        }
    }catch(Exception e){
        e.printStackTrace();
    }
}

1 Ответ

0 голосов
/ 05 декабря 2018

Построение объекта (Cliente) не является бесплатным и включает в себя накладные расходы, поэтому POJO, вероятно, будет медленнее.

Однако разница, вероятно, будет незаметной.Во всех случаях, связанных с производительностью, вы должны сначала написать код, который имеет смысл, а затем, ЕСЛИ это узкое место, подумайте над его улучшением.И во всех случаях вы ДОЛЖНЫ провести тестирование, чтобы убедиться, что вы его улучшили и что достигнутые вами результаты того стоят.

Кроме того, работа с POJO значительно снижает вероятность появления ошибок.и облегчить работу в будущем.Подумайте о следующем - какой из переходов страницы ошибочен?

something.acceptAge(cli[1])

something.acceptAge(cliente.getLastName())

...