import java.math.BigDecimal;
import java.util.LinkedHashMap;
import java.util.Map;public class Test001 { public static void main(String[] args) {
float[] nums = { 0.1f, 0.2f, 0.2f, 0.3f, 0.3f, 0.3f, 0.1f, 0.2f, 0.2f,
0.3f, 0.3f, 0.3f };
Map<Float, Integer> map = new LinkedHashMap<Float, Integer>();
for (float n : nums) {
float key = new BigDecimal(n).floatValue();
if (map.containsKey(key)) {
map.put(key, map.get(key) + 1);
} else {
map.put(key, 1);
}
}
System.out.println(map);
}
}[code=java]
{0.1=2, 0.2=4, 0.3=6}[/code]

解决方案 »

  1.   


    public class FloatTotal {
    public static void main(String[] args) {
    Map<Float, Integer> map = new HashMap<Float, Integer>();
    float [] nums = {0.1f,0.2f,0.2f,0.3f,0.3f,0.3f,0.1f,0.2f,0.2f,0.3f,0.3f,0.3f};
    for (Float f : nums) {
    if (map.containsKey(f)) {
    map.put(f, map.get(f) + 1);
    }
    else {
    map.put(f, 1);
    }
    }

    Iterator<java.util.Map.Entry<Float, Integer>> it = map.entrySet().iterator();
    while(it.hasNext()) {
    Entry<Float, Integer> entry = it.next();
    System.out.println(entry.getKey() + "=" + entry.getValue() + "次");
    }
    }
    }
      

  2.   

    循环这个数组,map存储key,value每遇到相同的key,value取出来加一。楼上都实现了