Locale.getISOCountries() Wrapper
My recommendation is: create a constructor for CountryPair, which takes the parameter values:

    public CountryPair(String value, String displayName) {
        this.value = value;
        this.displayName = displayName;
    }


Then, you can use an elegant map-chain:

    List&lt;CountryPair&gt; pairList = countryCodes.stream()
        .map(code -&gt; new Locale("", code))
        .map(locale -&gt; new CountryPair(locale.getCountry(), locale.getDisplayCountry()))
        .collect(Collectors.toList());


Alternatively, you could also use a constructor which uses the Locale object as a parameter.