user1234
user1234

Reputation: 155

How to check value of Multimap is null or empty?

I am using Multimap from Guava as shown below since I can have same keys many times but with different values.

Multimap<Long, Plesk> map = ArrayListMultimap.create();
// populate data into map

// extract value from the above map
Collection<Plesk> plesk = map.get(id);

And now from the same multimap I am extracting a particular key value. Now how can I check whether plesk variable is null or not? After I print out my map variable, I see one entry as:

1100178=[null]

so plesk variable is getting value as [null] for id 1100178 and if I use below code to check for null and empty then it doesn't work:

if (CollectionUtils.isEmpty(plesk)) {
    // do stuff
}

What is the right way to check whether value of multimap is null or not?

Upvotes: 3

Views: 3575

Answers (2)

Suhas
Suhas

Reputation: 126

As others have already said, the result of multimap.get(key) is never null and returns an empty collection if there are no values associated.
From your question, I can understand that you want to check whether there is a value present or not and perform some action if there is no value found for a specific key.
I would do something like this:

Multimap<String, String> multimap = LinkedListMultimap.create();
multimap.put("Name", "SomeName");
multimap.put("ID", "");
multimap.put("City", "SomeCity");
Collection<String> contentsofID = multimap.get("ID");
if (contentsofID.toString().equals("[]")) {
    // This means that there is no value in it
    // Then perform what you want
}

Upvotes: 0

ColinD
ColinD

Reputation: 110054

The result of Multimap.get(key) is never null. If there are no values associated with that key, it returns an empty Collection.

Your plesk collection appears to be a collection with a single element, and that single element is null.

Upvotes: 4

Related Questions