在java中按降序或升序打印整数范围

发布于 2024-08-21 00:31:47 字数 71 浏览 3 评论 0 原文

我有一个上限和一个下限,我想返回边界之间的所有数字,包括边界。我知道python有一个范围函数,但我确定java是否有这个方法。

I have an upper bound and a lower bound and I want to return all number number between the bounds including the bounds. I know python has a range function but I'm sure if java has this method.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

可爱暴击 2024-08-28 00:31:47

您可以只使用 for 循环。您想打印还是退回?你的标题和问题不同意这一点。如果您想返回它们,则需要选择用于包含它们的类型。

List<Integer> ret = new ArrayList<Integer>();
for (int i = lower; i <= upper; i++) {
    ret.add(i);
}
return ret;

我将把它作为打印它们或按降序排列它们的练习。

You can just use a for loop. Do you want to print them or return them? Your title and question disagree on this. If you want to return them, you will need to pick the type that you use to contain them.

List<Integer> ret = new ArrayList<Integer>();
for (int i = lower; i <= upper; i++) {
    ret.add(i);
}
return ret;

I will leave it as an exercise to print them, or to get them in descending order.

临走之时 2024-08-28 00:31:47

如果您有一个整数数组,则可以在 Apache Commons Lang 中使用 IntRange

http://commons.apache.org/lang/api-2.4/org/apache/commons/lang/math/IntRange.html

IntRange ir = new IntRange(int lower, int upper);
ir.toString();

更多信息您可以在此处使用各种范围:

http://commons.apache.org/lang/api-2.4/org/apache/commons/lang/math/class-use/Range.html

If you have an array if integers you can use IntRange in Apache Commons Lang:

http://commons.apache.org/lang/api-2.4/org/apache/commons/lang/math/IntRange.html

IntRange ir = new IntRange(int lower, int upper);
ir.toString();

More info of the various Range's you can use here:

http://commons.apache.org/lang/api-2.4/org/apache/commons/lang/math/class-use/Range.html

煞人兵器 2024-08-28 00:31:47

编辑:我完全读过了这个问题。我看到了 IntRange 实用程序的建议,我只是认为这是我经常听到的经典“我想要一个 Iterable”请求。所以忽略下面的。

简化(没有错误检查):

public static List<Integer> range(final int start, final int end) {
  return new AbstractList<Integer>() {
    public int size() {
      return end - start + 1;
    }
    public Integer get(int i) {
      return start + i;
    }
  };
}

EDIT: I totally over-read the question. I saw a suggestion of an IntRange utility and I just assumed this was the classic "I want an Iterable" request, which I hear often. So ignore the below.

Simplified (without error checking):

public static List<Integer> range(final int start, final int end) {
  return new AbstractList<Integer>() {
    public int size() {
      return end - start + 1;
    }
    public Integer get(int i) {
      return start + i;
    }
  };
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文