java - 如何创建 IF 语句来检查值是否最接近?

标签 java android if-statement

我有一个正/负整数数组

int[] numbers = new int[10];
numbers[0] = 100;
numbers[1] = -34200;
numbers[2] = 3040;
numbers[3] = 400433;
numbers[4] = 500;
numbers[5] = -100;
numbers[6] = -200;
numbers[7] = 532;
numbers[8] = 6584;
numbers[9] = -945;

假设我想在程序找到最接近 myNum 的值时显示一条 toast 消息

int myNum = 600; 

这可能吗?如果是这样我该如何实现?

P.S 不,我不想使用 System.out.println(),因为我打算将 IF 语句用于其他用途,我只是认为显示 toast 消息是最简单的事情。

最佳答案

怎么样:

public static void main(String[] args) {
    int[] numbers = new int[10];
    numbers[0] = 100;
    numbers[1] = -34200;
    numbers[2] = 3040;
    numbers[3] = 400433;
    numbers[4] = 500;
    numbers[5] = -100;
    numbers[6] = -200;
    numbers[7] = 532;
    numbers[8] = 6584;
    numbers[9] = -945;
    int myNum = 600;

    int distance = Math.abs(numbers[0]-myNum);
    int closest = numbers[0];

    for(int i=1;i<numbers.length;i++) {
        int itemDistance = Math.abs(numbers[i]-myNum);
        if(itemDistance < distance) {
            distance=itemDistance;
            closest=numbers[i];
        }
    }

    System.out.println("Closest number is:"+closest+" with distance: "+distance);
}

将打印:

Closest number is:532 with distance: 68

或者,您可以使用流来执行此操作:

int result = Arrays.stream(numbers).reduce((i,j) -> Math.abs(i-myNum) < Math.abs(j-myNum) ? i : j ).getAsInt();

System.out.println(result);

它将像前一个一样打印 532

关于java - 如何创建 IF 语句来检查值是否最接近?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43444718/

相关文章:

java - JList - 以红色突出显示特定单元格

java - 管理执行同一任务的线程的最合适方法是什么?

java - ByteBuf初始容量大小

android - 如何在线性布局Android中将按钮底部与多行编辑文本对齐

php - 我的 IF 语句正在更改 PHP 中的变量

java - 在 Mockito 2 中 stub 静态方法会抛出 InvalidUseOfMatchersException

android,从SD卡的xml文件中读取值

Android 本地主机拒绝连接

c++ - 使用指向在 "if"语句中声明的变量地址的指针是否可以

java - 连续打印 3 次并记录?