21xrx.com
2024-09-20 01:13:50 Friday
登录
文章检索 我的文章 写文章
如何用Java实现优雅的区间判断
2023-06-16 13:42:34 深夜i     --     --
Java 区间判断 优雅 if语句 Interval类 contains方法

在Java编程中,我们经常需要判断一个值是否在某个区间内,比如判断用户输入的年龄是否在18到60岁之间。本文将介绍如何用Java实现优雅的区间判断,并提供示例代码。

首先,我们可以使用if语句来判断一个值是否在一个区间内。比如判断年龄是否在18到60岁之间,可以使用下面的代码:


if (age >= 18 && age <= 60)

  // 年龄在18到60岁之间的逻辑

else

  // 年龄不在18到60岁之间的逻辑

这样的代码比较简单,但是不够优雅。因为如果有多个区间需要判断,代码会变得很冗长。下面是一个更优雅的实现方式:


import java.util.Arrays;

public class Interval {

  private final int[][] intervals;

  public Interval(int[]... intervals) {

    this.intervals = intervals;

    Arrays.sort(this.intervals, (a, b) -> Integer.compare(a[0], b[0]));

  }

  public boolean contains(int n) {

    int index = Arrays.binarySearch(intervals, new int[]n, (a, b) -> Integer.compare(a[0], b[0]));

    if (index >= 0) return true;

    index = ~index - 1;

    return index >= 0 && intervals[index][1] >= n;

  }

}

这个类允许我们传入多个区间,并且可以轻松判断一个值是否在这些区间内。例如,判断年龄是否在18到60岁之间,我们可以这样使用:


Interval interval = new Interval(new int[]18);

if (interval.contains(age))

  // 年龄在18到60岁之间的逻辑

else

  // 年龄不在18到60岁之间的逻辑

这样的代码更加优雅,我们可以轻松处理多个区间,并且不需要写冗长的if语句。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复