|
|
@@ -104,14 +104,15 @@ public class Union extends BaseResourceCollectionContainer { |
|
|
|
//preserve order-encountered using a list; enforce set logic manually: |
|
|
|
// (LinkedHashSet better, but JDK 1.4+) |
|
|
|
ArrayList union = new ArrayList(rc.size() * 2); |
|
|
|
Set _union = new HashSet(rc.size() * 2); |
|
|
|
// Use a set as list.contains() can be expensive for lots of resources |
|
|
|
Set set = new HashSet(rc.size() * 2); |
|
|
|
for (Iterator rcIter = rc.iterator(); rcIter.hasNext();) { |
|
|
|
for (Iterator r = nextRC(rcIter).iterator(); r.hasNext();) { |
|
|
|
Object o = r.next(); |
|
|
|
if (asString) { |
|
|
|
o = o.toString(); |
|
|
|
} |
|
|
|
if (_union.add(o)) { |
|
|
|
if (set.add(o)) { |
|
|
|
union.add(o); |
|
|
|
} |
|
|
|
} |
|
|
|