[ 
https://issues.apache.org/jira/browse/COLLECTIONS-450?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Thomas Neidhart resolved COLLECTIONS-450.
-----------------------------------------

    Resolution: Fixed

Added with minor changes in r1475937.

Thanks for the patch!
                
> Iterate over the all elements excluding the last/first one
> ----------------------------------------------------------
>
>                 Key: COLLECTIONS-450
>                 URL: https://issues.apache.org/jira/browse/COLLECTIONS-450
>             Project: Commons Collections
>          Issue Type: Wish
>          Components: Collection
>            Reporter: J. Moldawski
>            Priority: Minor
>             Fix For: 4.0
>
>         Attachments: patch_COLLECTIONS-450.txt
>
>
> The Problem
> ============
> In many applications you will extremly often find this sort of code:
> int i=0;
> for (element:elements)
> {
>   i++;
>   if (i!=elemets.size)
>   {
>      processLastElement(element);
>   }else
>   {
>      // Just for last element
>      processLastElement(element);
>   }
> }
> It happens often, if not just all collections's elements themself must be 
> processed, but some actions must be performed on going from one element to 
> the next. Since the last element has no successor, this actions must be 
> skipped when processing the last element. A very famous example is, if your 
> are going the generate a comma-separated-vector from a Collection<String>: 
> You will end up in a code like above.
> Proposal
> =========
> The method <T>CollectionUtils.forAllButLastDo(Collection<T>, C)
> should be introduced, which process all elements of a collection, but skips 
> the last one, which will be just returned. The above code can be then 
> re-written:
> processLastElement(forAllButLastDo(elements, 
>    new Closure<T>{
>       execute(T element){
>         processAllButTheLast(element)
>       }
>    }
>   ))

--
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

Reply via email to