From 1939c9050ef9e9c14f004ca473737a41b5d087fc Mon Sep 17 00:00:00 2001 From: mdb Date: Thu, 16 May 2002 22:42:15 +0000 Subject: [PATCH] Made addAll() more efficient if it is called with another ArrayIntSet as its argument. git-svn-id: https://samskivert.googlecode.com/svn/trunk@749 6335cc39-0255-0410-8fd6-9bcaacd3b74c --- .../java/com/samskivert/util/ArrayIntSet.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/projects/samskivert/src/java/com/samskivert/util/ArrayIntSet.java b/projects/samskivert/src/java/com/samskivert/util/ArrayIntSet.java index bb2e726f..7fcc7840 100644 --- a/projects/samskivert/src/java/com/samskivert/util/ArrayIntSet.java +++ b/projects/samskivert/src/java/com/samskivert/util/ArrayIntSet.java @@ -1,5 +1,5 @@ // -// $Id: ArrayIntSet.java,v 1.7 2002/05/16 22:15:08 mdb Exp $ +// $Id: ArrayIntSet.java,v 1.8 2002/05/16 22:42:15 mdb Exp $ // // samskivert library - useful routines for java programs // Copyright (C) 2001 Michael Bayne @@ -226,9 +226,17 @@ public class ArrayIntSet extends AbstractSet public boolean addAll (Collection c) { boolean modified = false; - Iterator iter = c.iterator(); - while (iter.hasNext()) { - modified = (add(iter.next()) || modified); + if (c instanceof ArrayIntSet) { + ArrayIntSet other = (ArrayIntSet)c; + for (int ii = 0; ii < other._size; ii++) { + modified = (add(other._values[ii]) || modified); + } + + } else { + Iterator iter = c.iterator(); + while (iter.hasNext()) { + modified = (add(iter.next()) || modified); + } } return modified; }