TGViewer
Java Mentor Java Mentor @your_java_mentor · 288 subscribers
Post #229 657
Задачка

Поделюсь примером того, чем приходится заниматься 40 часов в неделю 🖥

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

Представим также, что фронты пожаловались, что им приходит большое количество координат, и попросили уменьшить объем передаваемых данных, но так, чтобы трек все еще можно было отрисовать 🤯

Одно из предложенных решений - передавать в фильтре дополнительный временной интервал - количество минут. Его задача отсеивать лишние координаты следующим образом:

Допустим, что у нас есть координаты транспорта за каждую секунду. Если значение этого фильтра равно 2, тогда передается первая координата, затем та, которая идет минимум через 2 минуты, затем та, которая идет минимум за 2 минуты и тд.

Т.е. в результате должен получиться список, в котором координаты идут минимум через 2 минуты друг за другом

🅰️🅰️🅰️

Для упрощения представим, что у нас есть класс с координатой x (другие опустим для упрощения), а также меткой времени, в которое эта координата измерена.

Необходимо реализовать тело метода filterCoordinates

class Scratch {
public static void main(String[] args) {
List<Coordinate> coordinates = getCoordinates();
List<Coordinate> filtered = filterCoordinates(coordinates, 1);
}

static class Coordinate {
int x;
LocalDateTime dateTime;
Coordinate(int x, LocalDateTime dateTime) {
this.x = x;
this.dateTime = dateTime;
}
}

static List<Coordinate> filterCoordinates(
List<Coordinate> coordinates,
int minutesInterval) {
// TODO реализовать фильтрацию
return coordinates;
}

static List<Coordinate> getCoordinates() {
List<Coordinate> coordinates = new ArrayList<>();
LocalDateTime now = LocalDateTime.now();
for (int i = 1; i <= 300; i++) {
coordinates.add(new Coordinate(i, now.plusSeconds(i)));
}
return coordinates;
}
}
  • 🔥 5
  • 👍 1
More from @your_java_mentor
  1. Sep 2, 2026photo post
  2. Sep 2, 2026video post
  3. Sep 1, 2026Post #394
  4. Sep 1, 2026Post #393
  5. Aug 28, 2026Как по вашему, что не так с этим кодом? ❌ В методе main в список добавляются магические ко…
  6. Aug 19, 2026UserService + UserServiceImpl — но Impl тут единственный. Как вы считаете: стоит ли заводи…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →