You could use the Google Guava ```transform``` methods for this.

```
        List<String> archList = Lists.transform(new ArrayList<Arch>(productArchSet), new Function<Arch, String>() {
            public String apply(Arch arch) {
                return arch.getLabel();
            }
        });
```

instead of
```
List<String> archList = new ArrayList<String>();
for ( Arch arch : productArchSet) {
   archList.add(arch.getLabel());
}
```

though it's about the same. I guess the ```transform``` would be shorter if we had a set of Functions already defined that we could reuse, but to me it's a bit easier to read because it shows you are transforming the Set into a String List. The standard java way looks like we're looping through an array for the fun of it. I'm ok if you leave it as is, this is where python's map/reduce would be useful.