Установка значения hashmap через forloop из массива строк (первое значение в ключ, второе в значение и так далее..)
У меня есть три "набора ""струн" в форме:
1. Установите<string & gt; genderSet
сортировать:bestsellerRating:пол:женский:bestsellerRating:Пол:Мужской
2. Установите<string & gt; ageSet
сортировать:bestsellerRating:Возраст:0 - 6 месяцев :bestsellerRating:возраст:6 - 12 месяцев :bestsellerRating:возраст:12 - 14 месяцев
3. Установите<string & gt; priceSet
сортировка: bestsellerRating:price:£0-£19.99,: bestsellerRating:price:£200-£299.9
Хотите создать функцию, которая возвращает "строку", подобную следующей:
Вывод: сортировка: бестселлер: пол: женский: пол: Мужской: Возраст: 0-6 месяцев:Возраст: 6-12 месяцев:Возраст: 12-14 месяцев: Цена:£0 - £19.99:цена:£200 - £299.9
Не хочу играть со струной, так как это не очень хороший подход.
Причина: genderSet, ageSet и priceSet могут быть чем угодно, что является : разделенным
Хотим добиться этого используя `частности,`
**Необходима Помощь**: Нужно, чтобы карта была сформирована следующим образом: queryMap(сортировка, бестселлер), queryMap(пол, [мужчина, женщина]), queryMap(Возраст, [0 - 6 месяцев, 6-12 месяцев, 12 - 14 месяцев]), queryMap (Цена, [£0-£19.99,£200-£299.9]) от genderList[рода,бестселлер,пол,мужской,пол,женский] ageList[рода,бестселлер,Возраст 0 - 6 месяцев,Возраст 6 - 12 месяцев,в возрасте 12 - 14 месяцев] и прайс-лист[сортировка бестселлеров,Цена,£0-£19.99,цена,£200-£299.9]
Что я уже пробовал:
public String getQuery(final Form Form)
{
private static final String FACET_SEPARATOR = ":";
итоговая карта в<строка, набор в<строка=""&ГТ;&ГТ; queryMap = новый HashMap и Л;строка, набор в<строка=""&ГТ;&ГТ;();
окончательный набор в<строка> У giftFinderQuerySet = новый поиска HashSet И Л;строка&ГТ;();
окончательный набор в<строка> У valueset с = новый поиска HashSet И Л;строка&ГТ;();
окончательный набор в<строка> У genderSet = форма.getGenderSet();
окончательный набор в<строка> У ageSet = форма.getAgeSet();
окончательный набор в<строка> У priceSet = форма.getPriceSet();
for (final String gender : genderSet)
{
итоговая строка[] genderList = пол.сплит(FACET_SEPARATOR);// это приведет во - первых - [сортировка bestsellerRating, пол, женский пол], то [bestsellerRating, пол, кобель] далее в следующую петлю
for (final String genderSplittedValue : genderList)
{
//valueSet. add(genderList[+1]);
queryMap.поставить(genderSplittedValue, valueset с); // Тут вопрос: нужна карта, чтобы быть сформировано так: queryMap(вроде, бестселлеров), queryMap(Пол, [Мужской,Женский])
}
}
for (final String age : ageSet)
{
final String[] ageList = age. split(FACET_SEPARATOR); / / аналогичный список, например genderList
for (final String ageSplittedValue : ageList)
{
queryMap. put(genderSplittedValue, ageList[+1]); / / аналогичная проблема, как и выше
}
}
for (final String price : priceSet)
{
final String[] priceList = price. split(FACET_SEPARATOR); / / аналогичный список, например genderList
for (final String priceSplittedValue : прайс-лист)
{
queryMap. put(priceSplittedValue, priceList[+1]); / / аналогичная проблема, как и выше
}
}
Теперь, когда у нас есть готовая карта, тогда нет никаких проблем в дальнейшем коде
для (Map. Entry< string, key> entry : queryMap.keySet())
{
Ключевая строка = запись.getKey();
Строковое значение = entry. getValue();
giftFinderQuerySet. add(ключ+FACET_SEPARATOR+значение);
}
for (final String query : giftFinderQuerySet)
{
searchQuery = searchQuery. concat(запрос);
}
вернуться поиск query;
} / / Конец метода