79249589

Date: 2024-12-04 00:55:34
Score: 0.5
Natty:
Report link

Just putting in code what @Jacob G correctly said.

    public class CountDuplicates {
    
    public static int count(List<Item> items) {
        int count = 0;
        if (items.size() == 0) {
            return 0;
        }

        items.sort(Comparator.comparingInt(Item::getId));
        System.out.println("items: " + items);
        Map<Object, Long> resultMap = new HashMap<>();
        items.forEach(e -> {
            System.out.println("e : " + e);
            resultMap.put(e, resultMap.getOrDefault(e, 0L) + 1L);   
        });
        System.out.println("Map size: " + resultMap.size());
        return count;
    }

    private static List<Item> convertToList(int[] values) {
        List<Item> items = new ArrayList<>();
        for (int num : values) {
            items.add(new Item(num));
        }
        return items;
    }

    public static void main(String[] args) {
        int[] itemsArray = {5, 5, 2, 4, 2};
        List<Item> items = convertToList(itemsArray);
        int duplicateCount = count(items);
        System.out.println("Duplicate Count: " + duplicateCount);
    }

}


class Item {

    int id;

    public Item(int id) {
        this.id = id;
    }

    public int getId() {
        return id;
    }
    
    @Override
    public String toString() {
        return id+"";
    }
    
    @Override
    public boolean equals(Object i) {
        return ((Integer)id).equals(((Item)i).id);
    }
    
    @Override
    public int hashCode() {
        return ((Integer)id).hashCode();
    }

}

Output is:

items: [2, 2, 4, 5, 5]

e : 2

e : 2

e : 4

e : 5

e : 5

Map size: 3

Duplicate Count: 0

Reasons:
  • Long answer (-1):
  • Has code block (-0.5):
  • User mentioned (1): @Jacob
  • Low reputation (1):
Posted by: Singh Ravish K