You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Chen (Jira)" <ji...@apache.org> on 2019/09/26 07:07:00 UTC

[jira] [Comment Edited] (COLLECTIONS-674) Add Collections Drain Method

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

Chen edited comment on COLLECTIONS-674 at 9/26/19 7:06 AM:
-----------------------------------------------------------

{code:java}
public static <E> Collection<E> drain(Collection<E> input, int start, int count) {
		if (null == input) {
			throw new IllegalArgumentException("The collection can't be null.");
		}
		if (start < 0) {
			throw new IllegalArgumentException("The Start can't less than 0.");
		}
		if (count < 1) {
			throw new IllegalArgumentException("The Count can't less than 1.");
		}
		if (input.size() < start + count) {
			throw new IllegalArgumentException(
					"The sum of start and count cann't be greater than the size of collection.");
		}

		Collection<E> result = new ArrayList<E>(count);
		Iterator<E> iterator = input.iterator();
		while (count > 0) {
			result.add(iterator.next());
			iterator.remove();
			count = count - 1;
		}
		return result;
	}
{code}



was (Author: guoping1):

{code:java}
public static <E> Collection<E> drain(Collection<E> input, int start, int count) {
		if (null == input) {
			throw new IllegalArgumentException("The Collection of Input can't be null.");
		}
		if (start < 0) {
			throw new IllegalArgumentException("The Start can't less than 0.");
		}
		if (count < 1) {
			throw new IllegalArgumentException("The Count can't less than 1.");
		}
		if (input.size() < start + count) {
			throw new IllegalArgumentException(
					"The sum of start and count cann't be greater than the size of collection.");
		}

		Collection<E> result = new ArrayList<E>(count);
		Iterator<E> iterator = input.iterator();
		while (count > 0) {
			result.add(iterator.next());
			iterator.remove();
			count = count - 1;
		}
		return result;
	}
{code}


> Add Collections Drain Method
> ----------------------------
>
>                 Key: COLLECTIONS-674
>                 URL: https://issues.apache.org/jira/browse/COLLECTIONS-674
>             Project: Commons Collections
>          Issue Type: Improvement
>          Components: Collection
>    Affects Versions: 4.1
>            Reporter: David Mollitor
>            Priority: Major
>
> Add a {{Collections.drain()}} method which removes the first N elements from the collection and returns them.  This method would have the side-effect of modifying the input collections (due to removal).
>  
> {code:java}
> // Some suggestions
> void Collections.drain(Collection<T> from, Collection<T> to, int count);
> Collection<t> Collections.drain(Collection<t> from, int count);{code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)