Нет ничего встроенного в Java, чтобы сделать это. Но, эй, Java - это язык программирования, так что давайте запрограммируем его!
map.values().stream().map(e -> e.getKey() + "=" + e.getValue()).collect(Collectors.joining("&"))
Это дает вам "param1 = 12 & param2 = cat". Теперь нам нужно объединить URL и этот бит вместе. Вы могли бы подумать, что можете просто сделать: URL + "?" + theAbove
, но если URL-адрес уже содержит вопросительный знак, вы должны вместо этого объединить все это вместе с "&". Один из способов проверить это - посмотреть, есть ли где-нибудь вопросительный знак в URL.
Кроме того, я не совсем знаю, что на вашей карте. Если это сырье, вы, вероятно, должны защитить вызов на e.getKey()
и e.getValue()
с URLEncoder.encode
или подобным.
Еще один способ - расширить свой кругозор. Вы пытаетесь добавить содержимое карты к URL-адресу или ... вы пытаетесь сделать HTTP (S) -запрос от java-процесса с содержимым на карте как (дополнительными) HTTP-параметрами? В последнем случае вы можете заглянуть в http-библиотеку, например OkHttp , в которой есть несколько хороших API-интерфейсов для выполнения этой работы, и тогда вы можете отказаться от необходимости возиться с этим URL-адресом.