- Hello World with main method
- Hello World without main method
- Purpose of trait, class and Object keywords in Scala
- Java 'Object' is equivalent to Scala 'AnyRef'
- Various Scala types
- How methods or definitions are created using 'def'
- How definitions can also be created using 'var' or 'val'
- Java 'void' is equivalent to Scala 'Unit'
- Values which are lazy initialised using 'lazy val'
- Scala 'import' is richer than Java
- Equivalent of Java 'interface' in Scala is 'trait'
- Equivalent of Java 'sealed trait' in Scala is 'enum'
- Equivalent of Java 'ArrayList' Class in Scala is 'ArrayBuffer'
- Usage of 'tuple' to build abstractions over related values
- Usage of 'yield' in extracting values during loops
- Usage of 'isInstanceOf'
- Usage of 'try' 'catch'
- Usage of 'require' to enforce restrictions before creating instance of a Scala class
- Usage of 'tailrec' during recursions in methods
- Usage of keyword '++' in collections
- Usage of 'for each' as loop
- Usage of 'Either' as return types
- How Scala beans works : Half a line of Scala is the equivalent of seven lines of Java
- Primary constructor
- Auxiliary constructors
- Difference between private and private[this]
- Difference between call by name and call by value
- How '@inline' works
- How object-private access works
- Operators are nothing just methods. Operator overloading example
- A function without a return type is called Procedure in Scala
- Example of a function that can take a variable number of arguments
- Value '_' initializes to default value of variable
- How getter/setter is automatically generated in a class
- How Scala avoids NullPointerException using 'Option', 'Some' and 'None'
- Default object factory in Scala
- First class functions and currying
- Using 'strip margin' to add new lines in string
- Different types of looping techniques
- Companion objects
- Generics example
- Enviornment variables example
- "Hello"(4) is actually "Hello".apply(4)
- BigInt("1234567890") is actually BigInt.apply("1234567890")
- Create custom annotations using 'scala.annotation.StaticAnnotation'
- The 'App' trait can be used to quickly turn objects into executable programs
- Usage of 'Seq[String]' in Scala
- Usage of 'List' and 'Vector' in Scala
- Usage of 'ArrayBuffer' in Scala
- Usage of WeakHashMap in Scala
- Creating a 'Thread' in Scala
- Usage of thread pool based concurrency in Scala
- Object synchronization in Scala
- Usage of 'CountDownLatch' in Scala
- Usage of 'CyclicBarrier' is in Scala
- Test for Anagram String in Scala
- Counter number of words per String in Scala
- Program to give runtime size of all primitive variables
- A Stack implemented in Scala
- Reverse a word using a stack in Scala
- A Queue implemented in Scala
- A Circular Queue implemented in Scala
- A simple Akka Actor
- A Ping Pong program using Akka Actors
- A simple HTTP service using Akka
- A simple REST web service using Akka
- Program to count 'words per statement'
- Program to count 'words per statement', arrived on network socket
- Program to show case RDD operations
- Program to show case DataFrame operations
- Program to show case DataSet operations
- Program to show various operations on Data retrieved from File
- Program to show Kryo based serialization
To solve library dependencies in eclipse (sbteclipse plugin required), in sbt console type:
eclipse with-source=true
package