有一个包含几个数字的数组。其中找出在Java中的对数(在该数组中包含2次)。假设此数组2中的{2,5,7,8,2,3,5,6,5}包含2次,因此它是对数。

我尝试过这种方式:

HashMap<Integer, Integer> hmap = new HashMap<>();
  for (int i = 0; i < arr.length; i++)
    {
        Integer c = hmap.get(arr[i]);
        if (hmap.get(arr[i]) == null)
               hmap.put(arr[i], 1);
        else
          hmap.put(arr[i], ++c);
    }

最佳答案

你可以使用流

List<Integer> collect = Stream.of(2, 5, 7, 8, 2, 3, 5, 6, 5)
            .collect(Collectors.groupingBy(e -> e)).entrySet().stream()
            .filter(e -> e.getValue().size() == 2).map(Map.Entry::getKey)

关于java - 在数组中查找对数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40859410/

10-10 03:05