Как заменить указанные значения набора значениями, взятыми из спискаJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как заменить указанные значения набора значениями, взятыми из списка

Сообщение Anonymous »

У меня есть сложный объект obj, который содержит объект CountryUnit, содержащий коллекцию стран.
countries имеет следующие значения CountryValue:
countries == {
Country1 (countryValue == "A")
Country2 (countryValue == "B")
}

В этом случае мне нужно выполнить преобразование, чтобы результирующий набор стран содержал значения для CountryValue, которые будут заменены случайно выбранными значениями из список разрешенных стран. Например:
countries == {
Country1 (countryValue == "N")
Country2 (countryValue == "S")
}

Затем мне нужно вернуть объект obj уже с новыми значениями CountryValue. Какой самый простой способ это сделать? У меня есть фрагмент кода, но он не работает должным образом.
SomeObject obj; // complex object that contains multiple levels, obj contains CountryUnit object

public class CountryUnit {

private Set countries = new HashSet();

// getters, setters
}

public class Country {

private String countryValue;

// getters, setters
}

Мой код:
List CountryChecker = Arrays.asList("A", "B", "C");
List allowedCountryList = Arrays.asList("L", "M", "N", "O", "P", "R", "S");

obj.getSomeSet().stream()
.map(CountryUnit::getCountries)
.flatMap(Set::stream)
.filter((x) -> CountryChecker.contains(x.getCountryValue()))
.map(y -> {
Random r = new Random();
int rCountry = r.nextInt(allowedCountryList.size());
y.setCountryValue(allowedCountryList.get(rCountry));
return y;
});


Подробнее здесь: https://stackoverflow.com/questions/690 ... m-the-list
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»