Реальные задачи с собеседований | Java
3.53K subscribers
278 photos
36 videos
474 links
Буду сюда выкладывать реальные задачи и вопросы с собеседований, без копипаста с интернета и других каналов)

Ссылка для друга - https://t.me/+K4vJFdalwlthYTQy

Прислать задачи, реклама - @privatevoidmain
Download Telegram
Иннотех

class Node{
Long id; // заполнен
Long parentId; // заполнен если есть parent
List<Node> children; // пустой
}

List<Node> treeList = getList();

// todo: заполнить children у всех элементов в листе

#innotech| Прислать задачу | Подписаться
1👍2
Астон

Вывести в алфавитном порядке всех авторов, которые пишут только в одном жанре.
#sql
#aston | Прислать задачу | Подписаться
1👍3
Infinite synergy

Что происходит в плане транзакций при вызове beginProcessing() ?

@Service
@RequiredArgsConstructor
public class ServiceA {
private final ServiceB serviceB;

@Scheduled(someCron)
public void beginProcessing() {
List<SomeObject> result = getCollectionOfSomeObjects(); // 1
for (SomeObject item : result) {
processSingleItem(item);
}
}

public void processSingleItem(SomeObject source) {
serviceB.updateSomeField(source, someValue);
}
}

Подписаться
1🤔2
Infinite synergy

Написать if корректно
class Instrument {
// Класс, представляющий инструмент
// ...

@Getter
boolean traded; // Поле, указывающее, является ли инструмент торгуемым
}

// ...

List<Instrument> instruments; // Список инструментов

// ...

if ( ) {
// Нужно выполнить этот код, если все инструменты в списке instruments торгуемые
}

Подписаться
1👍3
Лига цифорвой экономики

Сделать код-ревью

код по ссылке -
https://www.online-ide.com/bYjfG0kNzx
#digitalleague | Подписаться
2👍9
Infinite synergy

// Нужно найти логическую ошибку в коде (код собирается и работает, но неправильно)
public class InstrumentListingMapperDto {

private long orgId;
private String instrumentId;
private String remarkId;

public InstrumentListingMapperDto() {
}

public InstrumentListingMapperDto setOrgId(long orgId) {
this.orgId = orgId;
return this;
}

public InstrumentListingMapperDto setInstrumentId(String orgId) {
this.instrumentId = orgId;
return this;
}

public InstrumentListingMapperDto setRemarkId(String remarkId) {
this.remarkId = remarkId;
return this;
}
}

// ...

public List<InstrumentListingMapperDto> mapOrgIdToInstrumentAndRemarkIds() {
List<Long> orgIds = List.of(1L, 2L, 3L);
Map<Long, String> instrumentsMap = Map.of(1L, "instId1", 2L, "instId2", 3L, "instId3");
Map<Long, String> remarkIdMap = Map.of(1L, "remId1", 2L, "remId2", 3L, "remId3");

var instrumentListingMapperDto = new InstrumentListingMapperDto();

return orgIds.stream()
.map(id -> instrumentListingMapperDto
.setOrgId(id)
.setInstrumentId(instrumentsMap.get(id))
.setRemarkId(remarkIdMap.get(id)))
.toList();
}

Подписаться
3👍11
Infinite synergy #sql
EMPLOYEE

id: Integer - id сотрудника
name: Varchar - имя сотрудника
manager_id: Integer - id руководителя сотрудника
salary: Integer - зп сотрудника

Вывести список сотрудников, у которых зп > зп руководителя.

Подписаться
1👍5🥰1👏1🤔1
Exon

Сделать рефакторинг

public class RefEx {

public enum DocumentType {
XML, PDF, DOCX
}

public static class Document {
String id;
DocumentType type;
String content;
}

public static class DocumentService {
public void process(Document[] d) {
for (Document i : d) {
// Общая логика обработки документа
switch (i.type) {
case DocumentType.PDF: {
// Специфическая логика для обработки PDF
break;
}
case DocumentType.DOCX: {
// Специфическая логика для обработки Word
break;
}
case DocumentType.XML: {
// Специфическая логика для обработки XML
break;
}
}
}
}
}
}


#exon| Подписаться
1👍6
CSI (Кристалл Сервис Интеграция)

Что будет выведено на экран?

#csi | Подписаться
1🔥931
Реальные задачи с собеседований | Java
админ, когда мемы все еще набирают больше лайков, чем задачи:
если последняя задача наберет 20 огоньков, следующую задачу публикую уже сегодня
если нет - запощу мем😂

как вам такое?)
1😁32🔥2
Иннотех

// Ниже приведен код обновления статуса заказа.
// Необходимо найти проблемы и внести изменения в приведенный код.

@Service
public class OrderService {

@Autowired
private OrderRepository orderRepository;

private final NotificationService notificationService;

@Autowired
public OrderService(NotificationService notificationService) {
this.notificationService = notificationService;
}

public void updateOrderStatus(Long orderId, String newStatus) {
Order order = orderRepository.findById(orderId).get();

if (newStatus.equals("COMPLETED")) {
order.setStatus("COMPLETED");
orderRepository.save(order);
notificationService.notifyUser(order.getUserId(), "Your order is completed");
} else if (newStatus.equals("CANCELLED")) {
order.setStatus("CANCELLED");
orderRepository.save(order);
notificationService.notifyUser(order.getUserId(), "Your order is cancelled");
} else if (newStatus.equals("PENDING")) {
order.setStatus("PENDING");
orderRepository.save(order);
} else if (newStatus.equals("IN_PROGRESS")) {
order.setStatus("IN_PROGRESS");
orderRepository.save(order);
} else {
throw new IllegalArgumentException("Unsupported status: " + newStatus);
}
}
}

#innotech | Подписаться
1🔥12
Exon #sql

Даны таблицы
Customer
-id pk
-name
-address

Account
-id pk
-acc_number
-description
-customer_id fk

Fin_transaction
-id pk
-transactDate
-amount
-account_id fk
-description

У клиента может не быть лицевых счетов. По лицевому счету может не быть транзакций.

Необходимо написать SQL-запрос, возвращающий имя клиента, описание его лицевого счета и среднюю сумму транзакции по этому счету.


#exon| Подписаться
1👍5
Exon

Необходимо реализовать на Java метод, принимающий на вход коллекцию, в которой присутствуют строки, и удаляющий из переданной коллекции все строки, начинающиеся на "ааа". Сигнатура необходимого метода должна иметь вид:

public static void filterTripleA(Collection<String> strings);


#exon| Подписаться
1🔥2😱1
Exon

Дан массив double[N], необходимо реализовать на Java метод, возвращающий частное от деления разности максимального с минимальным элементов и среднего арифметического значения элементов массива. В случае ошибки требуемый метод должен возвращать только указанный Exception. Сигнатура требуемого метода должна иметь вид:
public static double foo(double[] sourceArray) throws MyException;


#exon| Подписаться
50👍1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
ПОЧЕМУ ТАКИЕ ЛЕГКИЕ ЗАДАЧИ? (я сам хз)

Есть несколько вариантов:
1. Собес состоит из кучи легких задач, которые затрагивают отдельные темы (например, пул стрингов, передача параметров, женерики, стримы и т.д.). Иногда в виде теста.
Во время решения задач могут задавать теоретические вопросы.
2. Почти тоже самое, но вместе с легкими задачами могут быть средние задачи, код-ревью
3. Задают теоретические вопросы и параллельно или в конце дают пару мелких задач (обычно java core + sql), чтобы оценить, насколько кандидат понимает о чем говорит.

Когда присылают эти задачи, в основном публикую по одной)
Когда будет больше подписчиков и соответственно задач, можно будет публиковать все сразу😉
1😁15👍3
Вконтакте

Места в кинотеатре расположены в один ряд. Чтобы сидеть максимально далеко от остальных зрителей в ряду, пришедший зритель выбирает место, где расстояние от него до ближайшего к нему зрителя будет наибольшим. Гарантируется, что в ряду всегда есть свободное место и уже сидит хотя бы один зритель. Напишите функцию, которая по заданному ряду мест (массиву из нулей и единиц) вернет расстояние от выбранного места до ближайшего зрителя.

// Input: [1, 0, 0, 0, 1]
// Output: 2

// Input: [1, 0, 1, 0, 1, 0, 0, 0, 1]
// Output: 2

// Input: [1, 0, 1, 0]
// Output: 1

public static int maxDistance(int[] seats) {
int maxDistance = 0;

for (int i = 0; i < seats.length; i++) {

}

}

#vk | Подписаться
1👍5