Что такое размер по умолчанию List <Object>, когда мы использовали JPARepository с SpringBoot? - PullRequest
1 голос
/ 06 июня 2019

когда мы определяем List objects = new ArrayList (); , тогда его размер по умолчанию равен 10.

когда мы определяем объектов List = new ArrayList (50); , тогда его начальный размер равен 50.

Но что, если мы использовали как: Список объектов = xyzRepository.findByfield (значение);

Для вышеуказанного кода:

  1. какой список создается по умолчанию и каков был размер по умолчанию?
  2. Какой размер списка будет создан, если xyzRepository.findByfield (value) вернуть 200 объектов?

1 Ответ

3 голосов
/ 06 июня 2019

Если вы используете Hibernate в качестве провайдера персистентности, то, когда вы проходите реализацию getResultList, он возвращает это, когда не найдено ни одной строки (SessionImpl.class):

List results = Collections.EMPTY_LIST; 

Следующий шаг, кажется, угадать начальный размер:

        int guessedResultSize = this.guessResultSize(rowSelection);
        List combinedResults = new ArrayList(guessedResultSize);

После этого, если что-то будет найдено, строки будут добавлены в список combinedResults, который в итоге будет иметь либо начальное значение guessedResultSize, либо размер = число найденных строк.

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