I was using Multiset to have easy access to the freq of elements, but I realize there is Collections#frequency(Collection<?>, Object) that does the same for any collection. What is the point of using Multiset then? Is performance an issue here?
Using Guava multisets or Collections.frequency()?
1.3k Views Asked by seinecle At
1
There are 1 best solutions below
Related Questions in JAVA
- I need the BIRT.war that is compatible with Java 17 and Tomcat 10
- Creating global Class holder
- No method found for class java.lang.String in Kafka
- Issue edit a jtable with a pictures
- getting error when trying to launch kotlin jar file that use supabase "java.lang.NoClassDefFoundError"
- Does the && (logical AND) operator have a higher precedence than || (logical OR) operator in Java?
- Mixed color rendering in a JTable
- HTTPS configuration in Spring Boot, server returning timeout
- How to use Layout to create textfields which dont increase in size?
- Function for making the code wait in javafx
- How to create beans of the same class for multiple template parameters in Spring
- How could you print a specific String from an array with the values of an array from a double array on the same line, using iteration to print all?
- org.telegram.telegrambots.meta.exceptions.TelegramApiException: Bot token and username can't be empty
- Accessing Secret Variables in Classic Pipelines through Java app in Azure DevOps
- Postgres && statement Error in Mybatis Mapper?
Related Questions in COLLECTIONS
- Collections.max with custom Comparator on list
- ImportError: cannot import name 'Mapping' from 'collections' (E:\Anaconda\envs\nlp\Lib\collections\__init__.py)
- How to solve sonarqube issue based on bug to return a copy
- Pluck from a Java Collection using stream
- Havin a error with working a collection after deserialize json
- Are there any drawbacks in merging collections with Stream.concat()?
- Iterate with List(mylist.size){ index -> TODO()} or Map in kotlin Kotlin
- How to Pass-in a Collection name and Document Key to an AQL query to update the document
- Unexpect Behavior with Multiple Java Threads and TreeMap.put()
- Kotlin - Lists operations between lists with different T's
- C# Dictionary.Add(KeyValue, Structure) updates all existing records with last added structure but with the new KeyValue
- Mongodb find operation in embedded document
- what's the purpose of a local variable copy of internal array in dotnet collections source code
- How to implement read and write locking for a MongoDB collection?
- Custom equality comparator for set operation in Kotlin
Related Questions in GUAVA
- Convert an simple IntelliJ project with JUnit tests init into Maven or Gradle project
- Java: instantiate parametrized class by passing types as method parameter
- Exoplayer java.lang.NoSuchMethodError: No virtual method buildOrThrow()Lcom/google/common/collect/ImmutableMap. Activate Guava only for exoplayer
- Does `onClose` propagates to underlying streams when they are merged?
- facing this error -> Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.collect.ImmutableMap.of, while trying to run Selenium
- Java 21 virtual threads and Guava striped locks replacement
- Make Cache.get(key, mappingFunction) fail all waiting threads too if mappingFunction fails in Caffeine
- Getting different result using same library in spark-shell and intellij project
- How to serialize deserialize a bloom filter from Guava for Protobuf?
- Can caffine cache removal listener may get called multiple times(concurrently) for the same entry
- Caffeine Cache not working in Spring Boot
- How to exclude one of the variants of com.google.guava dependency while building Gradle projects
- Cannot use Guava library in iOS by Kotlin Multiplatform
- Make a write call update the data in a inmemory cache on all the kubernetes pods
- How can i add an library into my project repository on github?
Related Questions in MULTISET
- new initializer expression list treated as compound expression [-fpermissive]
- How to perform multiple tuple queries on aggregated results (multiset_aggregate) (MySQL / H2)
- SQL query for multi-set classification
- Finding multisets of numbers within a defined range, efficiently
- C++ iterator reference non-exist value
- Why does a^=b throw an error when a=a^b does not?
- Changing the comparator's parameter in the C++ multiset
- Efficiently query several one-to-zero-or-many relationships
- How to select a multiset from a list due to the probability amount of its value?
- Retrieve the value stored in a multiset
- How do work 'set' to delete duplicated value in python?
- time range between 2 dates
- Insertion and Deletion of Multiset Elements while Traversing through for loop using iterators
- Why is upper bound value of gquiz1 less than the key value
- Using jOOQ multiset or row instead of jsonObject
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Guava documentation for Multiset#count() has to say:
So, yes, I suspect that performance is the issue here.
I think
Multiset#countis more efficient becauseCollections#frequencyiterates through the entire collection. For an object o whose frequency you're checking, it goes through all elements e in the collection and checks(o == null ? e == null : o.equals(e)).For Multiset (which is an interface), the exact implementation of
countdepends on the class. If it is aHashMultiset, for example, then it is backed by aHashMap. For details about how that is more efficient than iterating through the whole collection, take a look at this answer: How does a Java HashMap handle different objects with the same hash code?.The Guava code is as follows
Similarly, for a
TreeMultiset, which maintains the ordering of its elements and is backed by an AVL tree,countcan be obtained in O(log(n)) steps instead of O(n), where n is the size of the collection. The Guava code is as follows: