为了账号安全,请及时绑定邮箱和手机立即绑定

Java在列表中查找与给定数字差异最小的数字

Java在列表中查找与给定数字差异最小的数字

肥皂起泡泡 2022-05-25 17:20:29
我的问题可能是微不足道的,但我无法破解它。假设我们有一个数字列表: [-1, -2, 1, 2, 8, 9, 13] 我需要找到一个与给定数字(正面或负面)差异最小的数字,比如说 5 . 有没有一种简单的方法可以做到这一点?
查看完整描述

2 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

numbers.stream()
   .mapToInt(i -> i-targetNumber)
   .map(Math::abs)
   .min()
   .get() + targetNumber;

像这样的东西?

作业:得到负数也出来了:)

编辑:我不能离开它......这个怎么样:

numbers.stream()
    .min((i1,i2) -> Math.abs(i1-target)-Math.abs(i2-target))
    .get();


查看完整回答
反对 回复 2022-05-25
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

您可以获取您的号码并将其与列表中的所有号码进行比较。然后,如果部分差异比差异小,您可以将数字存储为结果。


public class Home {

public static void main(String[] args) {

  List<Integer> list = Arrays.asList(-1,-2,1,2,8,9,13);

  Scanner s = new Scanner(System.in);

  int number = s.nextInt();

  int result = 0;

  int differencePartial;

  int difference = 1000;



  for (Integer i : list) {

    if (number > i) 

        differencePartial = number - i;

    else

        differencePartial = i - number;

    if (differencePartial < difference) {

        difference = differencePartial;

        result = i;

    }


}


System.out.println(result);

}

}


查看完整回答
反对 回复 2022-05-25
  • 2 回答
  • 0 关注
  • 465 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号