reduce number of created arrays
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/lang/trunk@1147508 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/commons/lang3/ArrayUtils.java b/src/main/java/org/apache/commons/lang3/ArrayUtils.java
index 641c4ed..0233491 100644
--- a/src/main/java/org/apache/commons/lang3/ArrayUtils.java
+++ b/src/main/java/org/apache/commons/lang3/ArrayUtils.java
@@ -5019,7 +5019,7 @@
toRemove.add(found++);
}
}
- return removeAll(array, toPrimitive(toRemove.toArray(new Integer[toRemove.size()])));
+ return removeAll(array, extractIndices(toRemove));
}
/**
@@ -5109,7 +5109,7 @@
toRemove.add(found++);
}
}
- return removeAll(array, toPrimitive(toRemove.toArray(new Integer[toRemove.size()])));
+ return removeAll(array, extractIndices(toRemove));
}
/**
@@ -5199,7 +5199,7 @@
toRemove.add(found++);
}
}
- return removeAll(array, toPrimitive(toRemove.toArray(new Integer[toRemove.size()])));
+ return removeAll(array, extractIndices(toRemove));
}
/**
@@ -5289,7 +5289,7 @@
toRemove.add(found++);
}
}
- return removeAll(array, toPrimitive(toRemove.toArray(new Integer[toRemove.size()])));
+ return removeAll(array, extractIndices(toRemove));
}
/**
@@ -5379,7 +5379,7 @@
toRemove.add(found++);
}
}
- return removeAll(array, toPrimitive(toRemove.toArray(new Integer[toRemove.size()])));
+ return removeAll(array, extractIndices(toRemove));
}
/**
@@ -5469,7 +5469,7 @@
toRemove.add(found++);
}
}
- return removeAll(array, toPrimitive(toRemove.toArray(new Integer[toRemove.size()])));
+ return removeAll(array, extractIndices(toRemove));
}
/**
@@ -5559,7 +5559,7 @@
toRemove.add(found++);
}
}
- return removeAll(array, toPrimitive(toRemove.toArray(new Integer[toRemove.size()])));
+ return removeAll(array, extractIndices(toRemove));
}
/**
@@ -5649,7 +5649,7 @@
toRemove.add(found++);
}
}
- return removeAll(array, toPrimitive(toRemove.toArray(new Integer[toRemove.size()])));
+ return removeAll(array, extractIndices(toRemove));
}
/**
@@ -5735,7 +5735,7 @@
toRemove.add(found++);
}
}
- return removeAll(array, toPrimitive(toRemove.toArray(new Integer[toRemove.size()])));
+ return removeAll(array, extractIndices(toRemove));
}
/**
@@ -5786,4 +5786,12 @@
return result;
}
+ private static int[] extractIndices(HashSet<Integer> coll) {
+ int[] result = new int[coll.size()];
+ int i = 0;
+ for (Integer index : coll) {
+ result[i++] = index.intValue();
+ }
+ return result;
+ }
}