Использование циклов для создания массивов данных

Если вы можете использовать equals, затем отфильтруйте список, используя distinct в потоке (см. ответы выше). Если вы не можете или не хотите переопределять метод equals, вы можете filter поток следующим образом для любого свойства, например. для свойства Name (то же самое для идентификатора свойства и т. д.):

Set<String> nameSet = new HashSet<>();
List<Employee> employeesDistinctByName = employees.stream()
            .filter(e -> nameSet.add(e.getName()))
            .collect(Collectors.toList());
0
задан isherwood 13 July 2018 в 19:10
поделиться

2 ответа

Конечно, это прекрасный способ заполнить массив. Если вы хотите, чтобы он выполнялся немного быстрее, вы можете просто присвоить значение tata непосредственно индексу, а не вызвать array.push.

const arr2 = [pmt, ((1 + r) * pmt)];

for (let i = 1; i < n; i++) {
  arr2[i + 1] = Math.round((1 + r) * (pmt + arr2[i]));
}

В js массивы разрежены. Таким образом, вы можете воспользоваться этим, просто назначив значения индексу vs, нажимая на массив.

Если вы хотите сделать это еще быстрее, и если вы можете знать, какое конечное значение будет из начиная, вы можете перебирать назад, как:

for (let i = endLength; i--;) {
  arr2[i] = // do calculations here
}
0
ответ дан Geuis 17 August 2018 в 12:12
поделиться

Учитывая, что ваш код работает во время O(n), я уверен, что все должно быть в порядке, и что вы не можете сделать это быстрее (поскольку вам нужно создать каждую точку для построения).

Если ваш график не является статичным, в некотором смысле, что он не зависит от ваших данных database или какого-либо взаимодействия с пользователем, вам всегда нужно создавать новые точки, и в этом случае вы действительно ничего не сможете сделать .

скорее всего, медленный шаг будет на части charts.js, которая создает узлы DOM, чтобы она могла рисовать диаграмму на экране.

Другой вариант хранить данные массива на locaStorage и использовать его в качестве кеша, чтобы, если пользователь снова ударил этот route, вы сначала проверите данные на своем locaStorage, а если нет, вы можете его создать.

, который будет излишним в моем вопросе, O(n) временная сложность построения и массива прекрасна и ожидается даже для тысяч точек.

0
ответ дан Bruno Braga 17 August 2018 в 12:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: