Are there any significant differences between the two approaches these two languages took towards functional programming? The obvious one is collections in Java need to be converted to Stream before using functional programming goodies. Are there any others?
There are many differences. Java is missing nearly all functional elements that Scala offers. Scala has pattern matching, for comprehensions, lazy values, tail call elimination, data types, higher kinded types, and much much more. Plus it has many functional types such as Option, Try, immutable collections... They should not be compared from the functional programming point of view. If you want to learn functional programming and you have the choice of the language, my advice would be to select Haskell if you don't need the JVM, and Scala otherwise.