Warning
This repository is still a work in progress: links may not work, exercises may be missing or still not resolved,
etc.
If you have particular requests (eg. you want an exercise to be resolved soon, can't find anymore a file, link
broken), please open an issue!
This repository is an adaptation of the exercises provided
in nbicocchi/java-core for Kotlin programming language.
I've made this repo mainly for making practice in Kotlin language. Feel free to comment my work by opening GitHub
issues! Any help is accepted!
- upload exercises from nbicocchi/java-core
- adapt the exercises texts to Kotlin language
- adapt README.md package descriptions to Kotlin
- resolve exercises
- warmup
- arrays
- strings
- oop
- bankaccount tests
- library tests
- polynomials tests
- shape tests
- collections
- exercises with I/O
- generics
- functional
- exception
- IO
- multi-threading
- Project modules
- GUI application with Kotlin multiplatform
- DB application
Packages: com.MatteV02.exercises.warmup, com.MatteV02.exercises.arrays, com.MatteV02.exercises.strings
- Variables, methods and parameter passing
- Fundamental data types
- Decisions
- Loops
- Arrays (and brief introduction to ArrayList)
- Strings
- Input and output (
print,println, input from keyboard) - Random numbers
- Coding Standard
Packages: com.MatteV02.exercises.oop
- Instance variables and encapsulation
- Specifying the public interface of a class (and its implementation)
- Static variables and methods
- Inheritance hierarchies
- Abstract classes
- Interfaces (and anonymous implementations)
- Object: the cosmic superclass
- Wrapper types
- UML class diagrams
Packages: com.MatteV02.exercises.collections
- Iterable and Iterator interfaces
- List interface and its implementations (ArrayList, LinkedList)
- Set interface and its implementations (HashSet, LinkedHashSet, TreeSet)
- Deque interface and its implementations (ArrayDeque, LinkedList)
- Map interface and its implementations (HashMap, LinkedHashMap, TreeMap)
- Sorting and searching
Packages: com.MatteV02.exercises.generics
- Generic classes and type parameters
- Implementing generic types
- Generic methods
- Constraining type parameters
- Type erasure
Packages: com.MatteV02.exercises.functional
- Lambda expressions
- Functional interfaces
- Producing, transforming, and collecting functional streams
- null-safety
Packages: com.MatteV02.exercises.exceptions
- Throwing exceptions
- Catching exceptions
- Checked and unchecked exceptions
- Closing resources
Packages: com.MatteV02.exercises.io
- Manipulating paths
- Manipulating filesystem (copy, move, etc)
- Reading and writing files
Packages: com.MatteV02.exercises.threads
- Thread states
- Thread interference
- Thread synchronisation (synchronised/wait/notify)
- ExecutorService
- Callable/Future/Task
