[ 
https://issues.apache.org/jira/browse/LANG-1074?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14246151#comment-14246151
 ] 

Benedikt Ritter commented on LANG-1074:
---------------------------------------

Looks useful. I'm not sure I like the name however. Furthermore the element 
parameter should be of type T.

> Add removeElementAll method in class ArrayUtils
> -----------------------------------------------
>
>                 Key: LANG-1074
>                 URL: https://issues.apache.org/jira/browse/LANG-1074
>             Project: Commons Lang
>          Issue Type: Improvement
>          Components: lang.*
>    Affects Versions: 3.3.2
>            Reporter: haiyang li
>            Priority: Minor
>             Fix For: Discussion
>
>
> Could we add the method: removeElementAll to remove all the occurrences of 
> the specified element from the specified 
> (boolean/char/byte/short/int/long/float/double/Object) array:
> {code:title=org.apache.commons.lang3.ArrayUtils.java|borderStyle=solid}
>     public static <T> T[] removeElementAll(final T[] array, final Object 
> element) {
>         int index = indexOf(array, element);
>         if (index == INDEX_NOT_FOUND) {
>             return clone(array);
>         }
>         int[] indices = new int[array.length];
>         int count = 0;
>         indices[count++] = index;
>         for (;;) {
>             index = indexOf(array, element, ++index);
>             if (index == INDEX_NOT_FOUND) {
>                 break;
>             } else {
>                 indices[count++] = index;
>             }
>         }
>         return (T[]) removeAll((Object) array, Arrays.copyOfRange(indices, 0, 
> count));
>     }
> {code}
> or maybe better:
> {code:title=org.apache.commons.lang3.ArrayUtils.java|borderStyle=solid}
>     public static <T> T[] removeElement(final T[] array, final Object 
> element, boolean removeAll) {
>        
>         if(!removeAll) {
>             return removeElement(array, element)
>         }
>         int index = indexOf(array, element);
>         if (index == INDEX_NOT_FOUND) {
>             return clone(array);
>         }
>         int[] indices = new int[array.length];
>         int count = 0;
>         indices[count++] = index;
>         for (;;) {
>             index = indexOf(array, element, ++index);
>             if (index == INDEX_NOT_FOUND) {
>                 break;
>             } else {
>                 indices[count++] = index;
>             }
>         }
>         return (T[]) removeAll((Object) array, Arrays.copyOfRange(indices, 0, 
> count));
>     }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to