Posts

Showing posts with the label collections interview questions

How to Iterate through ConcurrentHashMap and print all keys and values in Java

Suppose you have a ConcurrentHashMap of String and Integer and you want to print all keys and values, how do you that? This is a common, day to day programming task for Java programmer and there are many ways to do it. The Map interface provides several view methods e.g. keySet() , values() , and entrySet() to retrieve all keys, values, and all key and value pairs as entries. You can use respective methods to print all keys, all values, or all key values pairs. For printing, you also have multiple choice e.g. you can either use enhanced for loop or Iterator , though later also provide you the facility to remove key value pairs while printing if needed. Though you should remember that these views are backed by Map, so when you remove a key-value pair from entry set it will also be removed by the ConcurrentHashMap . Read more �

What is difference between Synchronized and Concurrent Collections in Java?

Synchronized vs Concurrent Collections Though both Synchronized and Concurrent Collection classes provide thread-safety, the differences between them comes in performance , scalability and how they achieve thread-safety. Synchronized collections like synchronized HashMap , Hashtable , HashSet , Vector, and synchronized ArrayList are much slower than their concurrent counterparts e.g. ConcurrentHashMap , CopyOnWriteArrayList , and CopyOnWriteHashSet . Main reason for this slowness is locking; synchronized collections locks the whole collection e.g. whole Map or List while concurrent collection never locks the whole Map or List. They achieve thread safety by using advanced and sophisticated techniques like lock stripping. For example, the ConcurrentHashMap divides the whole map into several segments and locks only the relevant segments, which allows multiple threads to access other segments of same ConcurrentHashMap without locking. Read more �

Difference between IdentityHashMap and HashMap in Java

IdentityHashMap in Java was added in Java 1.4 but still it's one of those lesser known class in Java. The main difference between IdentityHashMap and HashMap in Java is that IdentityHashMap is a special implementation of Map interface which doesn't u se equals() and hashCode() method f or comparing object unlike other implementation of Map e.g. HashMap . Instead, IdentityHashMap uses equality operator "==" to compare keys and values in Java which makes it faster compare to HashMap and suitable where you need reference equality check and instead of logical equality. By the way, IdentityHashMap is a special implementation of Map interface muc h like EnumMap but it al so violates general contract of Map interface which mandates using equals method for comparing Object. Also, IdentityHashMap vs HashMap is a good Java question and have been asked a couple of times. Read more �

Difference between TreeSet, LinkedHashSet and HashSet in Java with Example

TreeSet , LinkedHashSet and HashSet all are implementation of Set interface and by virtue of that, they follows contract of Set interface i.e. they do not allow duplicate elements. Despite being from same type hierarchy, there are lot of difference between them; which is important to understand, so that you can choose most appropriat e Set impl ementation based upon your requirement. By the way difference between TreeSet and HashSet or LinkedHashSet is also one of the popular Java Collection interview question , not as popular as Hashtable vs HashMap or ArrayList vs Vector but still appears in various Java interviews. In this article we will see difference between HashSet , TreeSet and LinkedHashSet on various points e.g. Ordering of elements, performance, allowing null etc and then we will see When to use TreeSet or LinkedHashSet or s imply HashSet in Java . Read more �

Difference between EnumMap and HashMap in Java

HashMap vs EnumMap in Java What is the difference between EnumMap and HashMap in Java is the latest Java collection interview question which has been asked to a couple of my friends? This is one of the tricky Java questions , especially if you are not very much familiar with EnumMap in Java , which is not uncommon, given you can use it with only Enum keys . The main difference between EnumMap and HashMap is that EnumMap is a specialized Map implementation exclusively for Enum as key. Using Enum as key allows doing some implementation level optimization for high performance which is generally not possible with other objects as key. We have seen a lot of interview questions on HashMap in our article How HashMap works in Java but what we missed there is this question which is recently asked to some of my friends. Unlike HashMap , EnumMap is not applicable for every case but it's best suited when you have Enum as key. We have already covered basics of EnumMap and some EnumMap exam...

How to Convert Collection to String in Java - Spring Framework Example

How to convert Collection to String in Java Many times we need to convert any Collection like Set or List into String like comma separated or any other delimiter delimited String . Though this is quite a trivial job for a Java programmer as you just need to Iterate through the loop and create a big String where individual String are separated by a delimiter, you still need to handle cases like the last element should not have delimiter or at a bare minimum you need to test that code. I like Joshua Bloch advice on Effective Java to use libraries for those common tasks let it be an internal proprietary library or any open source library as used in previous examples of Spring , Apache Commons or Google�s Guava but point is that you should avoid converting ArrayList to String like common task by yourself on application code. Read more �