Skip to content

Instantly share code, notes, and snippets.

@mishadoff
Created July 10, 2014 12:11
Show Gist options
  • Save mishadoff/9f79258242dba61cde1a to your computer and use it in GitHub Desktop.
Save mishadoff/9f79258242dba61cde1a to your computer and use it in GitHub Desktop.
# Using STM
Create a custom implementation of some data structure. Data structure
should work according to its definition,
follow the Big-O limitations,
be completely thread-safe in concurrent environment and use only STM
primitives in implementation.
You are free to use any Java STM library, but we recommend
[Multiverse STM](http://multiverse.codehaus.org/overview.html)
Example of STM usage, tests, executable CLI and maven dependency for
STM [here](https://github.com/epam-mooc/stm-java-demo)
## Choose datastructure
Select one datastracture listed below, and follow their API.
- [HashMap](http://en.wikipedia.org/wiki/Associative_array)
- [DoubleLinkedList](http://en.wikipedia.org/wiki/Doubly_linked_list)
- [MultiSet](http://en.wikipedia.org/wiki/Multiset)
- [PriorityQueue](http://en.wikipedia.org/wiki/Priority_queue)
- [DoubleEndedQueue](http://en.wikipedia.org/wiki/Deque)
- [CircularBuffer](http://en.wikipedia.org/wiki/Circular_buffer)
- [Stack](http://en.wikipedia.org/wiki/Stack_%28data_structure%29)
- [BinarySearchTree](http://en.wikipedia.org/wiki/Binary_search_tree)
- [BinaryHeap](http://en.wikipedia.org/wiki/Binary_heap)
- [PrefixTree](http://en.wikipedia.org/wiki/Trie)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment