Why not just return the set and remove the use of arraylist? The method returns a collection.
On 10/2/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > Author: jglick > Date: Tue Oct 2 14:38:20 2007 > New Revision: 581394 > > URL: http://svn.apache.org/viewvc?rev=581394&view=rev > Log: > Silly little optimization: <javac> was taking time quadratic in fileset size. > Unfortunately this is not the only place in Ant where List.contains is called; > DirectoryScanner.processIncluded seems to be as bad. > Alas, someone long ago made protected Vector fields in DS, and it seems too > late to change them now: > even changing to ArrayList would break subclasses like FTP which call > addElement! Yuck!! Peter > > Modified: > ant/core/trunk/src/main/org/apache/tools/ant/types/resources/Union.java > > Modified: > ant/core/trunk/src/main/org/apache/tools/ant/types/resources/Union.java > URL: > http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/resources/Union.java?rev=581394&r1=581393&r2=581394&view=diff > ============================================================================== > --- ant/core/trunk/src/main/org/apache/tools/ant/types/resources/Union.java > (original) > +++ ant/core/trunk/src/main/org/apache/tools/ant/types/resources/Union.java > Tue Oct 2 14:38:20 2007 > @@ -22,6 +22,8 @@ > import java.util.ArrayList; > import java.util.Collection; > import java.util.Collections; > +import java.util.HashSet; > +import java.util.Set; > > import org.apache.tools.ant.types.Resource; > import org.apache.tools.ant.types.ResourceCollection; > @@ -100,14 +102,16 @@ > return Collections.EMPTY_LIST; > } > //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); > 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.contains(o))) { > + if (_union.add(o)) { > union.add(o); > } > } > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]