ListWithDefault (Groovy JDK enhancements)

Package: groovy.lang

## Class ListWithDefault

- - ### Methods Summary

    Methods
    Return type | Name and parameters
    --- | ---
    `List` | `getAt(EmptyRange range)` Support the range subscript operator for an eager or lazy List.
    `List` | `getAt(Range range)` Support the range subscript operator for an eager or lazy List.
    `List` | `getAt(Collection indices)` Select a List of items from an eager or lazy List using a Collection to identify the indices to be selected.

  - #### Methods inherited from class java.lang.Object

    `addShutdownHook`, `any`, `any`, `asBoolean`, `asType`, `collect`, `collect`, `collect`, `dump`, `each`, `eachMatch`, `eachMatch`, `eachWithIndex`, `every`, `every`, `find`, `find`, `findAll`, `findAll`, `findIndexOf`, `findIndexOf`, `findIndexValues`, `findIndexValues`, `findLastIndexOf`, `findLastIndexOf`, `findResult`, `findResult`, `findResult`, `findResult`, `getAt`, `getMetaClass`, `getMetaPropertyValues`, `getProperties`, `grep`, `grep`, `hasProperty`, `identity`, `inject`, `inject`, `inspect`, `invokeMethod`, `is`, `isCase`, `isNotCase`, `iterator`, `metaClass`, `print`, `print`, `printf`, `printf`, `println`, `println`, `println`, `putAt`, `respondsTo`, `respondsTo`, `setMetaClass`, `split`, `sprintf`, `sprintf`, `stream`, `tap`, `toString`, `use`, `use`, `use`, `with`, `with`, `withCloseable`, `withStream`, `withTraits`

  - #### Methods inherited from interface java.util.List

    `addAll`, `asImmutable`, `asReversed`, `asSynchronized`, `asUnmodifiable`, `bufferedIterator`, `drop`, `dropRight`, `dropWhile`, `each`, `eachWithIndex`, `equals`, `equals`, `execute`, `execute`, `execute`, `findAll`, `findAll`, `first`, `flatten`, `getAt`, `getAt`, `getAt`, `getAt`, `getAt`, `grep`, `grep`, `head`, `init`, `intersect`, `intersect`, `last`, `leftShift`, `minus`, `minus`, `minus`, `multiply`, `plus`, `plus`, `plus`, `plus`, `plus`, `plus`, `pop`, `push`, `putAt`, `putAt`, `putAt`, `putAt`, `putAt`, `putAt`, `putAt`, `putAt`, `removeAt`, `removeLast`, `reverse`, `reverse`, `reverseEach`, `shuffle`, `shuffle`, `shuffled`, `shuffled`, `split`, `subsequences`, `swap`, `tail`, `take`, `takeRight`, `takeWhile`, `toSpreadMap`, `toUnique`, `toUnique`, `toUnique`, `transpose`, `unique`, `unique`, `unique`, `unique`, `unique`, `unique`, `withDefault`, `withEagerDefault`, `withLazyDefault`

  - #### Methods inherited from interface java.util.Collection

    `addAll`, `addAll`, `addAll`, `asBoolean`, `asImmutable`, `asSynchronized`, `asType`, `asUnmodifiable`, `collectNested`, `each`, `eachWithIndex`, `find`, `find`, `findAll`, `findAll`, `flatten`, `getAt`, `getIndices`, `grep`, `grep`, `inject`, `inject`, `intersect`, `intersect`, `isCase`, `isNotCase`, `leftShift`, `minus`, `plus`, `plus`, `plus`, `removeAll`, `removeAll`, `removeElement`, `retainAll`, `retainAll`, `split`, `toListString`, `toListString`, `toSet`, `unique`, `unique`, `unique`, `unique`, `unique`, `unique`

  - #### Methods inherited from interface java.lang.Iterable

    `any`, `asCollection`, `asList`, `asType`, `average`, `average`, `bufferedIterator`, `chop`, `collate`, `collate`, `collate`, `collate`, `collect`, `collect`, `collect`, `collectEntries`, `collectEntries`, `collectEntries`, `collectEntries`, `collectMany`, `collectMany`, `collectNested`, `collectNested`, `combinations`, `combinations`, `contains`, `containsAll`, `count`, `count`, `countBy`, `disjoint`, `drop`, `dropRight`, `dropWhile`, `each`, `eachCombination`, `eachPermutation`, `eachWithIndex`, `every`, `findIndexOf`, `findIndexOf`, `findIndexValues`, `findIndexValues`, `findLastIndexOf`, `findLastIndexOf`, `findResult`, `findResult`, `findResult`, `findResult`, `findResults`, `findResults`, `first`, `flatten`, `flatten`, `getAt`, `groupBy`, `groupBy`, `groupBy`, `head`, `indexed`, `indexed`, `init`, `inits`, `intersect`, `intersect`, `intersect`, `isEmpty`, `join`, `last`, `max`, `max`, `max`, `min`, `min`, `min`, `minus`, `minus`, `minus`, `minus`, `multiply`, `permutations`, `permutations`, `plus`, `plus`, `size`, `sort`, `sort`, `sort`, `sort`, `sort`, `stream`, `sum`, `sum`, `sum`, `sum`, `tail`, `tails`, `take`, `takeRight`, `takeWhile`, `toList`, `toSet`, `toSorted`, `toSorted`, `toSorted`, `toSpreadMap`, `toUnique`, `toUnique`, `toUnique`, `withIndex`, `withIndex`

- - ### Methods Detail

    - #### public List getAt(EmptyRange range)

      Support the range subscript operator for an eager or lazy List.

          def list = [true, 1, 3.4].withDefault{ 42 }
          assert list[0..<0] == []

      Parameters:
        `range` - a Range indicating the items to get
      Returns:
        a new list instance based on range borders

    - #### public List getAt(Range range)

      Support the range subscript operator for an eager or lazy List.

          def list = [].withDefault { 42 }
          assert list[1..2] == [null, 42]

      Parameters:
        `range` - a Range indicating the items to get
      Returns:
        a new eager or lazy list instance based on range borders

    - #### public List getAt(Collection indices)

      Select a List of items from an eager or lazy List using a Collection to identify the indices to be selected.

          def list = [].withDefault { 42 }
          assert list[1,0,2] == [42, 42, 42]

      Parameters:
        `indices` - a Collection of indices
      Returns:
        a new eager or lazy list of the values at the given indices