如何获取大于数组列表中当前元素的数字元素的计数[关闭]
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 次,问如何使用优秀的 时空复杂度快速找到这个数字。
在java中,一个数组的长度不固定(长度大于1),如何获取数组的最后一个元素