问题描述
急求float数组相同元素个数元素计数50分int[]nums={0.1,0.2,0.2,0.3,0.3,0.3,0.1,0.2,0.2,0.3,0.3,0.3}
不用排序,只用统计相同元素出现的个数。
解决方案
解决方案二:
importjava.math.BigDecimal;importjava.util.LinkedHashMap;importjava.util.Map;publicclassTest001{publicstaticvoidmain(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=newLinkedHashMap<Float,Integer>();for(floatn:nums){floatkey=newBigDecimal(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]
解决方案三:
publicclassFloatTotal{publicstaticvoidmain(String[]args){Map<Float,Integer>map=newHashMap<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(Floatf: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()+"次");}}}
解决方案四:
循环这个数组,map存储key,value每遇到相同的key,value取出来加一。楼上都实现了
解决方案五:
解决方案六:
楼上的思路足够解决问题了,我就不回复了