> For the complete documentation index, see [llms.txt](https://lfool.gitbook.io/leetcodenote/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lfool.gitbook.io/leetcodenote/30-day-leetcoding-challenge/2020-04/counting-elements.md).

# Counting Elements

## Description

Given an integer array `arr`, count element `x` such that `x + 1` is also in `arr`.

If there're duplicates in `arr`, count them seperately.

**Example 1:**

> **Input:** arr = \[1,2,3]&#x20;
>
> **Output:** 2&#x20;
>
> **Explanation:** 1 and 2 are counted cause 2 and 3 are in arr.

**Example 2:**

> **Input:** arr = \[1,1,3,3,5,5,7,7]&#x20;
>
> **Output:** 0&#x20;
>
> **Explanation:** No numbers are counted, cause there's no 2, 4, 6, or 8 in arr.

**Example 3:**

> **Input:** arr = \[1,3,2,3,5,0]&#x20;
>
> **Output:** 3&#x20;
>
> **Explanation:** 0, 1 and 2 are counted cause 1, 2 and 3 are in arr.

**Example 4:**

> **Input:** arr = \[1,1,2,2]&#x20;
>
> **Output:** 2&#x20;
>
> **Explanation:** Two 1s are counted cause 2 is in arr.

**Constraints:**

* `1 <= arr.length <= 1000`
* `0 <= arr[i] <= 1000`

## **Code**

```java
class Solution {
    public int countElements(int[] arr) {
        int count = 0;
        Map<Integer, Integer> map = new HashMap<>();
        for (int i = 0; i < arr.length; i++) {
            map.put(arr[i], map.getOrDefault(arr[i], 0) + 1);
        }
        Iterator<Map.Entry<Integer, Integer>> iterator = map.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry<Integer, Integer> next = iterator.next();
            if (map.containsKey(next.getKey() + 1)) {
                count += next.getValue();
            }
        }
        return count;
    }
}
```
