scalabeginner
List Operations Basics
Essential list operations: head, tail, cons, zip, groupBy, sliding, partition, and span.
scalaPress ⌘/Ctrl + Shift + C to copy
@main def run(): Unit =
val nums = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
// Basic access
println(s"Head: ${nums.head}")
println(s"Tail: ${nums.tail}")
println(s"Last: ${nums.last}")
println(s"Init: ${nums.init}")
println(s"Take 3: ${nums.take(3)}")
println(s"Drop 3: ${nums.drop(3)}")
// Cons (prepend)
val withZero = 0 :: nums
println(s"Cons: $withZero")
// Concat
val combined = List(1, 2) ::: List(3, 4)
println(s"Concat: $combined")
// Partition and span
val (evens, odds) = nums.partition(_ % 2 == 0)
println(s"\nEvens: $evens")
println(s"Odds: $odds")
val (prefix, rest) = nums.span(_ < 5)
println(s"Prefix (<5): $prefix")
println(s"Rest: $rest")
val (first3, remaining) = nums.splitAt(3)
println(s"First 3: $first3, Remaining: $remaining")
// Grouping
val words = List("apple", "avocado", "banana", "blueberry", "cherry")
val byFirstLetter = words.groupBy(_.head)
println(s"\nGrouped: $byFirstLetter")
val grouped = nums.grouped(3).toList
println(s"Groups of 3: $grouped")
// Sliding window
val windows = nums.sliding(3).toList
println(s"Sliding(3): $windows")
val windowStep = nums.sliding(3, 2).toList
println(s"Sliding(3, step=2): $windowStep")
// Zip
val names = List("Alice", "Bob", "Carol")
val ages = List(30, 25, 35)
val zipped = names.zip(ages)
println(s"\nZipped: $zipped")
val indexed = names.zipWithIndex
println(s"Indexed: $indexed")
val (unzipNames, unzipAges) = zipped.unzip
println(s"Unzipped: $unzipNames, $unzipAges")
// Flattening
val nested = List(List(1, 2), List(3, 4), List(5))
println(s"\nFlatten: ${nested.flatten}")
println(s"FlatMap: ${nested.flatMap(_.map(_ * 10))}")
// Distinct, sorted, reversed
val dupes = List(3, 1, 4, 1, 5, 9, 2, 6, 5, 3)
println(s"\nDistinct: ${dupes.distinct}")
println(s"Sorted: ${dupes.sorted}")
println(s"Reversed: ${dupes.reverse}")
println(s"SortBy: ${words.sortBy(_.length)}")
// Aggregations
println(s"\nMin: ${nums.min}, Max: ${nums.max}")
println(s"Sum: ${nums.sum}, Product: ${nums.product}")
println(s"Count(>5): ${nums.count(_ > 5)}")
println(s"Exists(>5): ${nums.exists(_ > 5)}")
println(s"ForAll(>0): ${nums.forall(_ > 0)}")
// Reduce and fold
println(s"Reduce(+): ${nums.reduce(_ + _)}")
println(s"FoldLeft: ${nums.foldLeft("")((acc, n) => acc + n.toString)}")
println(s"Scan: ${nums.take(5).scanLeft(0)(_ + _)}")Use Cases
- Data processing and transformation
- Collection manipulation
- Functional programming basics
Tags
Related Snippets
Similar patterns you can reuse in the same workflow.
scalabeginner
Collections Map Filter Fold Operations
Master Scala collections: map, flatMap, filter, fold, groupBy, partition, and zip operations.
Best for: Data transformation and aggregation
#scala#collections
scalabeginner
Scala Hello World Application
Create a basic Scala application with main method, string interpolation, and val/var basics.
Best for: Getting started with Scala
#scala#basics
scalabeginner
Pattern Matching Fundamentals
Use Scala pattern matching with guards, type patterns, tuple patterns, and nested extractors.
Best for: Control flow with pattern matching
#scala#pattern-matching
scalabeginner
Map and HashMap Operations
Work with Scala Maps: create, update, merge, transform, and use default values.
Best for: Configuration management
#scala#map