w3resource

Scala Programming: Flatten a given List of Lists, nested list structure

Scala Programming List Exercise-18 with Solution

Write a Scala program to flatten a given List of Lists, nested list structure.

Sample Solution:

Scala Code:

object Scala_List {    
   
  def flat_List(ls: List[_]): List[Any] = ls match {
  case Nil => Nil
  case (head: List[_]) :: tail => flat_List(head) ::: flat_List(tail)
  case head :: tail => head :: flat_List(tail)
   }  
  
  def main(args: Array[String]): Unit = {
     val all_lists1 = List(List(1,3,5,7), List(2,4,6,8), List(31,32,33,34))
     println("Original List:")  
     println(all_lists1)
     val flatten_list1 = flat_List(all_lists1)
     println("Flatten list:")
     println(flatten_list1)
     val all_lists2 = List(1, List(2, 3, 4), List(List(List(5, 6, 7))), List(8, 9), List(10), 11)
     println("Original List:")
     println(all_lists2)
     val flatten_lists2 = flat_List(all_lists2)
     println("Flatten list:")
     println(flatten_lists2)
    }
}

Sample Output:

Original List:
List(List(1, 3, 5, 7), List(2, 4, 6, 8), List(31, 32, 33, 34))
Flatten list:
List(1, 3, 5, 7, 2, 4, 6, 8, 31, 32, 33, 34)
Original List:
List(1, List(2, 3, 4), List(List(List(5, 6, 7))), List(8, 9), List(10), 11)
Flatten list:
List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)

Scala Code Editor :

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Write a Scala program to check a given list is a palindrome or not.
Next: Write a Scala program to triplicate each element immediately next to the given list of integers.

What is the difficulty level of this exercise?



Follow us on Facebook and Twitter for latest update.