Как преобразовать заголовок entrySet.forEach в массив строк?

Я работаю над HttpServer, используя пакет com.sun, и мне нужно сохранить заголовки из HttpExchange в массиве String, но я не уверен, как это сделать.

Я получаю заголовки, используя:

Headers requestHeaders = exchange.getRequestHeaders();

И затем я могу вывести их на консоль, используя это:

requestHeaders.entrySet().forEach(System.out::println);

Но вместо того, чтобы печатать на консоли, как лучше всего сохранить их в массиве String?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
0
766
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Для получения ключей используйте: -

String[] keyArray = requestHeaders.entrySet().stream()
                                  .map(Entry::getKey)
                                  .toArray(String[]::new);

Чтобы получить значения, используйте: -

String[] valuesArray = requestHeaders.values().stream().toArray(String[]::new);

Спасибо, это именно то, что мне было нужно. Есть ли способ поместить ключи со значениями в один массив более простым способом или просто добавить оба массива в новый третий?

Lauthai 08.01.2019 18:25

Вы можете сделать что-то вроде этого: map.entrySet().stream().map(e -> e.getKey() + "," + e.getValue()).toArray(String[]::new); Но в этом нет особого смысла - я предпочитаю другой путь.

Nicholas K 08.01.2019 18:32

Другие вопросы по теме