Oleh Dovhai, Java developer, tells about Guava features and shows how it works.
Presentation includes:
-basic overview of Guava collections and utils;
-some practical examples;
-comparison of code and execution time with other utils.
Exampler can be found here:
http://goo.gl/x4XJfi
2. New data structures
● Multimap: one key - several values
○ HashMultimap - does not allow duplicating key-value pairs
○ LinkedListMultimap - traversal in order of adding
○ TreeMultimap - sorted Multimap
3. Multimap before
1. Map<Employee, List<Role>> map = new HashMap<Employee, List<Role>>();
2. public void grant(Employee employee, Role role) {
3. List<Role> roles = map.get(employee);
4. if (roles == null) {
5. roles = new ArrayList<Role>();
6. map.put(employee, roles);
7. }
8. roles.add(role);
9. }
4. Multimap after
1. Multimap<Employee, Role> multimap = ArrayListMultimap.create();
2. public void grant(Employee employee, Role role) {
3. multimap.put(employee, role);
4. }
5. BiMap
● Bidirectional map - values can be used as keys.
1. BiMap<String, Integer> bimap = HashBiMap.create();
2. bimap.put("ONE", 1);
3. bimap.put("TWO", 2);
4. BiMap<Integer, String> inversed = bimap.inverse();
6. Multiset
● allows adding duplicates
● stores the number of duplicates
● HashMultiset, LinkedHashMultiset, TreeMultiset, ConcurrentHashMultiset
1. Multiset<String> tags = HashMultiset.create();
2. for (BlogPost post : getAllBlogPosts()) {
3. tags.addAll(post.getTags());
4. }
5. tags.elementSet();
6. tags.count("habr");