Axbit Group
Есть модель данных, состоящая из 2 структур.
Что в данной реализации можно сделать иначе и почему? Какие потенциальные проблемы могут быть при такой модели?
Подписаться
Есть модель данных, состоящая из 2 структур.
Что в данной реализации можно сделать иначе и почему? Какие потенциальные проблемы могут быть при такой модели?
Подписаться
Лига цифровой экономики
Какие цифры можно добавить? Все ли правильно написано?
#digitalleague | Подписаться
Какие цифры можно добавить? Все ли правильно написано?
List<? extends Number> nums = new ArrayList<>();
nums.add(1);
nums.add(2.1);
nums.add(33L);
#digitalleague | Подписаться
Лига цифровой экономики
Что будет выведено на экран?
код - online-ide.com/ITQZrHjksO
#digitalleague | Подписаться
Что будет выведено на экран?
код - online-ide.com/ITQZrHjksO
#digitalleague | Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Яндекс
#yandex | Подписаться
/*
* Дан массив целых чисел a_1, a_2, ..., a_n и неотрицательное число k.
* Найдите количество пар элементов массива (i, j),
* таких что i < j и |a_i - a_j| = k (модуль разности равен k).
*
* Примеры:
* {-5, 1, -3, 0, 5}, k = 6 -> 3
* {-2, 1, 3, 0, -10, 1}, k = 0 -> 1
*/
public int getPairsCountWithDiffByModule(int[] a, int k) {
// ...
}
#yandex | Подписаться
This media is not supported in your browser
VIEW IN TELEGRAM
Всех с окончанием рабочей недели)
#fridaymemes
#fridaymemes
Лига цифровой экономики
Будет ли работать этот код?
#digitalleague | Подписаться
Будет ли работать этот код?
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
for (String elem : list) {
if (elem.equals("a")) {
list.remove(elem);
}
}
#digitalleague | Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Тинькоф
#tbank | Подписаться
/**
* API поиска авторов и их книг по имени автора (полное ФИО или часть имени в любом регистре).
* Также компонент при каждом поиске обновляет статистику по частоте использования поисковой строки (сбрасывается раз в сутки другой системой)
* При обнаружении популярного запроса (> 1000 запросов в сутки), по которому находится много авторов, отправляется алерт.
* Алерт должен отправляться не более 1 раза за сутки для каждого запроса
* Все классы на самом деле находятся в разных файлах, однако здесь представлены в одном месте для удобства
*/
@RestController
public class AuthorController {
@Autowired
private AuthorSearchService service;
@GetMapping("/authors")
public List<AuthorDto> readAllAuthors(@RequestParam String query) {
List<Author> authors = service.search(query);
return authors.stream().map(el -> {
return new Mapper().map(el);
}).collect(Collectors.toList());
}
}
@Component
public class AuthorSearchService {
@Autowired
private AuthorsRepository authorsRepository;
@Autowired
private StatisticsRepository statisticsRepository;
private AlertRestClient arc = new AlertRestClient();
// В query может быть как полностью ФИО, так и часть имени, например "Вадим Панов" или "панов"
@Transactional
public List<Author> search(String query) {
List<Author> authors = authorsRepository.findByNameContainingIgnoreCase(query);
Statistics s = statisticsRepository.findById(query).orElse(null);
if (s == null) s = new Statistics(query);
s.setNumbers(s.getNumbers() + 1);
statisticsRepository.save(s);
if (s.getNumbers() > 1000 && authors.size() > 1000) {
System.out.println("too popular search with too much data, sending an alert...");
arc.send(query, s.getNumbers(), authors.size());
}
return authors;
}
}
@Entity
@Data
public class Author {
@Id
@GeneratedValue
private Long id;
private String name;
@OneToMany(mappedBy = "author")
private List<Book> books;
public Author(String name) {
this.name = name;
}
}
@Entity
@Data
public class Statistics {
@Id
private String query;
private int numbers;
public Statistics(String query) {
this.query = query;
}
}
@Data
public class AuthorDto {
private Long id;
private String name;
private List<Book> books;
}
@Entity
@Data
public class Book {
private Long id;
private String name;
}
#tbank | Подписаться