我有一个数组列表[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
答案 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) + " ");
}
}
}