java - 找到最接近确定的乘积值的值

标签 java

我有两个值(value)观。一个是静态的,等于 24

int A = 24;

我有条目列表:

[0, 21, 45, 76, 98]

所有出现都在循环中,我想得到最接近的值,它除以 A :

0 - 24
21 - 24
45 - 48
76 - 72
98 - 96

这个怎么计算?

最佳答案

使用 java8,您可以流式传输数组或列表并映射它

public static void main(String[] args) {
    int a = 24;
    List<Integer> mL = Arrays.asList(0, 21, 45, 76, 98);
    Map<Integer, Integer> m = mL.stream().collect(Collectors.toMap(Integer::intValue, x -> {
        int r = a * (int) Math.round(x / (double) a);
        return r == 0 ? a : r;
    }));
    System.out.println(m);
}

输出将是一个映射,其中键是要分析的值,值是最接近它的增量

{0=24, 98=96, 21=24, 76=72, 45=48} 

关于java - 找到最接近确定的乘积值的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47659754/

相关文章:

Java在方法中访问字符串数组

java - 从 Wicket 1.3.7 升级到 1.4.9 有哪些主要优势?

java - 多个 JLabel 上的 MouseListener 未按预期工作

java - 在 Spring applicationContext.xml 中使用 P6Spy 和数据源

Java多线程等于多核?

java - 给定 Horizo​​ntalFieldManager 中的两个标签字段,我应该如何显示第二个标签的全文而不换行?

java - 如何映射 "Try with resources"异常类型?

java - 使用 App Engine 配置 ReSTLet

java - jspWriter的输出缓冲区输出到日志的方法

Java线程模型