Если вы можете использовать equals
, затем отфильтруйте список, используя distinct
в потоке (см. ответы выше). Если вы не можете или не хотите переопределять метод equals
, вы можете filter
поток следующим образом для любого свойства, например. для свойства Name (то же самое для идентификатора свойства и т. д.):
Set<String> nameSet = new HashSet<>();
List<Employee> employeesDistinctByName = employees.stream()
.filter(e -> nameSet.add(e.getName()))
.collect(Collectors.toList());
Конечно, это прекрасный способ заполнить массив. Если вы хотите, чтобы он выполнялся немного быстрее, вы можете просто присвоить значение 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
}
Учитывая, что ваш код работает во время O(n)
, я уверен, что все должно быть в порядке, и что вы не можете сделать это быстрее (поскольку вам нужно создать каждую точку для построения).
Если ваш график не является статичным, в некотором смысле, что он не зависит от ваших данных database
или какого-либо взаимодействия с пользователем, вам всегда нужно создавать новые точки, и в этом случае вы действительно ничего не сможете сделать .
скорее всего, медленный шаг будет на части charts.js
, которая создает узлы DOM
, чтобы она могла рисовать диаграмму на экране.
Другой вариант хранить данные массива на locaStorage
и использовать его в качестве кеша, чтобы, если пользователь снова ударил этот route
, вы сначала проверите данные на своем locaStorage
, а если нет, вы можете его создать.
, который будет излишним в моем вопросе, O(n)
временная сложность построения и массива прекрасна и ожидается даже для тысяч точек.