[ https://issues.apache.org/jira/browse/LANG-839?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13472485#comment-13472485 ]
Sebb commented on LANG-839: --------------------------- URL: http://svn.apache.org/viewvc?rev=1396075&view=rev Log: LANG-839 ArrayUtils removeElements methods use unnecessary HashSet Eliminate conversion of BitSet to int[] Modified: commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/ArrayUtils.java commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/HashSetvBitSetTest.java > ArrayUtils removeElements methods use unnecessary HashSet > --------------------------------------------------------- > > Key: LANG-839 > URL: https://issues.apache.org/jira/browse/LANG-839 > Project: Commons Lang > Issue Type: Improvement > Components: lang.* > Affects Versions: 3.1 > Reporter: Sebb > Priority: Minor > Fix For: 3.2 > > Attachments: LANG-839.patch > > > The removeElements() methods use a HashSet to collect the indexes that need > removing. > This requires creating Integer objects for each index, and the HashSet then > has to be converted into an int[] array. > It would be more efficient to store the entries in an actual int[] array. > The maximum size of this is the length of the values array (or the length of > the input array if that is shorter). > The array must be truncated before calling the private removeAll() method; > this can be done with Arrays.copyOf(x[], length). > However, if the arrays are very large, and most of the values do not appear > in the input, this might result in using more memory than the HashSet > implementation. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira