Version: 1.1
This tutorial is not a tutorial that intents teach you the language itself, it's a collection of code samples which can be used for better understanding ideas behind the concepts of design patterns, data structures and algorithms.
It assumes that you are familiar with the language.
Each topic has small explanation of a problem or an idea and the solution, you can use it as you wish and as you want.
As a start point, let's address to Programming Principles.
In the tutorial the following design patterns will be described:
- Creational Patterns: Abstract Factory, Builder, Factory Method, Prototype, Singleton;
- Structural Patterns: Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy;
- Behavioral Patterns: Chain Of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor.
In the tutorial the following data structures will be described:
- Array
- List, Array List, Vector
- Linked List
- Double Linked List
- Stack
- Queue
- Hash Table
- Tree, Binary Search Tree
- Heap
- Priority Queue
- Set
As a start point, let's address to Big-O Notation.
In the tutorial the following algorithms will be described:
- Sort Algorithms: Bubble Sort, Selection Sort, Insertion Sort, Shell Sort, Merge Sort, Quick Sort, Counting Sort, Radix Sort, Bucket Sort;
- Search Algorithms: Linear Search. Binary Search;
- Other Algorithms: Factorial.
- Java 11+
- Maven 3.6+