Get number of duplicates from ArrayList

前端 未结 3 345
自闭症患者
自闭症患者 2021-01-27 20:07

For example, say I have an ArrayList that could contain the following values:

x
x
x
y
y

Now what I want to retrieve is the number

相关标签:
3条回答
  • 2021-01-27 20:15

    Check out the Multiset in google guava: http://docs.guava-libraries.googlecode.com/git-history/v11.0.2/javadoc/com/google/common/collect/Multiset.html

    Example:

    Multiset<String> strings = HashMultiset.create(arrayList);
    int countX = strings.count("x"); // the count of x
    

    More examples can be found on the Guava wiki.

    0 讨论(0)
  • 2021-01-27 20:25

    Well, for this what you can do is to traverse the list from the end. Keep a counter and keep checking for the change in the object. As soon as you detect a change, replace the number in the counter with the current position + 1. Do this till you reach the first position.

    0 讨论(0)
  • 2021-01-27 20:36

    What you want to do is use a HashMap<Object, Long>. Store the Object as the key and the Long as the occurrence count.

    Here's some pseudo code which will do what you're trying to do.

    for(x in list) {
     if(x in Map) {
       map.put(x, map.get(x)++);
     } else {
       map.put(x, 1);
     }
    }
    

    You can then iterate through the Map and print the value and occurrence count. I'll let you write that one up. It's easy enough.

    0 讨论(0)
提交回复
热议问题