java - 量化等级法

标签 java android math

试图找到一种更优雅的方法来创建具有离散级别的整数。我的示例只显示了 6 个不同的级别,但我想对 45 个不同的级别执行此操作,所以不要 45 if elses。不确定这在数学中叫什么,所以似乎找不到我要找的东西。

sd = some double value

int level = 0;

if (Double.compare(sd, 0.41) >= 0) {
    level = 5;
} else if(Double.compare(sd, 0.25) >= 0) {
    level = 4;
} else if(Double.compare(sd, 0.11) >= 0) {
    level = 3;
} else if(Double.compare(sd, 0.05) >= 0) {
    level = 2;
} else if(Double.compare(sd, 0.02) >= 0) {
    level = 1;
}

................

最新更新仅供引用,这些是我需要量化的值: 如您所见,我需要一些更优雅的东西,Used Navigable Map answer

public static final int[] Levels = { 
        3100, 3250, 3383, 3517, 3650, 
        3673, 3695, 3718, 3740, 3760, 
        3780, 3800, 3820, 3853, 3885,
        3918, 3950, 3975, 4000, 4025, 4050
        };

最佳答案

http://download.oracle.com/javase/6/docs/api/java/util/NavigableMap.html

NavigableMap<Integer, Integer> map = new TreeMap<Integer, Integer>();
map.put(0, 0);    // 0..4     => 0
map.put(5, 1);    // 5..10    => 1
map.put(10, 2);   // 10..100  => 2
......

您也可以使用 Double 数据类型来实现它。

关于java - 量化等级法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8128911/

相关文章:

java - 如何使用 Java Swing 制作 GUI

java - 通过反复绘制透明矩形逐渐淡化

javascript - ECMAScript 6 Internet Explorer 11 - 我必须重新编写代码吗?

android - 如何在Android中包含.so文件

java - 计算角度的标准偏差?

python - __rsub__ 和 __rtruediv__ 带分数

java - 为什么 Spring 注解和 xml 配置注入(inject)集合的方式不同?

java - 添加方法不在 RandomAccessFile 中添加 Student

java - 使用计时器更新android ui