[ https://issues.apache.org/jira/browse/GROOVY-11678?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17953982#comment-17953982 ]
ASF GitHub Bot commented on GROOVY-11678: ----------------------------------------- paulk-asert merged PR #2234: URL: https://github.com/apache/groovy/pull/2234 > Create DGM#subList(IntRange) method > ----------------------------------- > > Key: GROOVY-11678 > URL: https://issues.apache.org/jira/browse/GROOVY-11678 > Project: Groovy > Issue Type: New Feature > Reporter: Paul King > Assignee: Paul King > Priority: Major > > We recently added some DGM variants on Lists which take an IntRange. Rather > than keep adding such variants, it makes more sense to piggy-back of JDK > subList functionality and provide a subList method that takes a range. > {code:groovy} > def list = [1, 2, 3, 3, 4, 4, 5, 6, 7] > assert list.partitionPoint(0..<4) { it <= 20 } == 4 // alt1 > assert list.subList(0..<4).partitionPoint { it <= 20 } == 4 // alt2 > {code} > It would allow us to offer the second alternative instead of the first, > potentially removing the need for one variant. > Another example: > {code:groovy} > def nums = [5, 9, 1, 7, 3, 4, 8, 6, 0, 2] > nums.sort(0..4) // alt1 > nums.subList(0..4).sort() // alt2 > assert nums == [1, 3, 5, 7, 9, 4, 8, 6, 0, 2] > {code} > The other mutating methods, e.g. {{shuffle}}, {{unique}}, {{clear}}, could > also be used and we don't need more variants. > It would still make sense to keep some variants, e.g.: > {code:groovy} > assert nums.toSorted(0..4) == [1, 3, 5, 7, 9, 4, 8, 6, 0, 2] > {code} > Since we sort on the int range but return the whole list. > It may also make sense to keep variants where we want to offer the same > functionality with index selection across more aggregates, e.g. lists and > arrays. -- This message was sent by Atlassian Jira (v8.20.10#820010)