Мне нужно решить проблему, где я могу вставить влево и вправо.А затем извлекать данные из середины массива.
Я уже пытался решить эту проблему с помощью связного списка.Однако этот подход был слишком медленным, чтобы быть принятым в качестве решения.
Какую структуру данных вы бы предложили мне использовать, если мне нужна быстрая вставка в начало и конец списка, а также быстрый поиск среднего элемента?
Вот код, с которым я уже пробовал:
private static void middleQueue(int loopLength, String[] commandsArray) {
LinkedList<String> linkedList = new LinkedList<>();
int counterSize = 0;
for (int i = 0; i < commandsArray.length; i++) {
if(commandsArray[i].equals("R")){
linkedList.add(commandsArray[i+1]);
i++;
counterSize++;
}
else if(commandsArray[i].equals("L")){
linkedList.addFirst(commandsArray[i+1]);
i++;
counterSize++;
}
else if(commandsArray[i].equals("E")){
if((linkedList.size() & 1) == 0)
System.out.println(linkedList.remove((counterSize / 2)-1));
else
System.out.println(linkedList.remove((counterSize / 2)));
counterSize--;
}
}
}