急求float数组相同元素个数元素计数50分

曹子钰 2013-12-24 08:02:43
急求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}

不用排序,只用统计相同元素出现的个数。
...全文
880 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
solomon5926 2013-12-25
  • 打赏
  • 举报
回复
楼上的思路足够解决问题了,我就不回复了
teemai 2013-12-24
  • 打赏
  • 举报
回复
循环这个数组,map存储key,value每遇到相同的key,value取出来加一。楼上都实现了
genganpeng 2013-12-24
  • 打赏
  • 举报
回复

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() + "次");
		}
	}
}
Mourinho 2013-12-24
  • 打赏
  • 举报
回复

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]

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧