如何获取大于arraylist中当前元素的数量元素的计数

时间:2018-12-27 11:38:07

标签: java arraylist collections

我有一个数组列表[10,11,1,2,3,6,11,10]。对于每个元素,我想获取大于当前元素的元素数。

例如,对于10,只有11大于它,并且有2次出现。 对于11,没有比这更大的了。所以0。

所以我们必须输出类似 10,2 11,0 1,7 2,6 3,5 6,4 11,0 10,2

2 个答案:

答案 0 :(得分:1)

您可以这样做:

public void greaterCounter(List<Integer> input){
  for (Integer i : input){
    Integer count = 0;
    for (Integer j : input){
      if (i < j)
        count++;
    }
    System.out.print(i+","+count+" ");
  }
}

答案 1 :(得分:0)

尝试一下:

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Count
{
  public static void main(String[] args)
  {
    List<Integer> input = Arrays.asList(10, 11, 1, 2, 3, 6, 11, 10);
    Map<Integer, Integer> output = new HashMap<>();
    for (Integer in : input)
    {
      // I've used Java 8's stream API here. But if you are using Java 7 or lesser,
      // you can use another "for" loop here to filter items.
      int count = (int) input.stream().filter(i -> i > in).count();
      output.put(in, count);
    }

    for (Integer in : input)
    {
      System.out.print(in + "," + output.get(in) + " ");
    }
  }
}