如何获取大于数组列表中当前元素的数字元素的计数[关闭]

Posted

技术标签:

【中文标题】如何获取大于数组列表中当前元素的数字元素的计数[关闭]【英文标题】:How to get count of number elements which are greater than current element in an arraylist [closed] 【发布时间】:2019-05-25 10:45:33 【问题描述】:

我有一个数组列表 [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

【问题讨论】:

嘿,给我们代码,代码中的问题在哪里。请阅读此***.com/help/how-to-ask 到目前为止尝试了什么? 【参考方案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+" ");
  

【讨论】:

您可以在 print 语句的末尾添加一个空格以使输出更好。喜欢:System.out.print(i+","+count+" "); 对,已编辑:)【参考方案2】:

试试这个:

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) + " ");
    
  

【讨论】:

以上是关于如何获取大于数组列表中当前元素的数字元素的计数[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何从数组列表中提取项目并对其进行计数,以便从元素及其总计数(正确)在 Java 中创建映射?

给你一个长度为 n 的数组,其中只有一个数字出现了大于等于 n/2 次,问如何使用优秀的 时空复杂度快速找到这个数字。

如何在数组php中仅获取非空元素计数

在java中,一个数组的长度不固定(长度大于1),如何获取数组的最后一个元素

获取数组中每个索引的子文档元素计数并更新子文档键 - 数组中的子文档(IN MONGODB)

Prisma:如何找到与 id 列表匹配的所有元素?