相关疑难解决方法(0)

如何在Java中生成连续整数的列表或数组?

是否有一种简短而甜蜜的方式来生成一个List<Integer>或者一个 Integer[]或者int[]从某个start值到end值的连续值?

也就是说,短于,但相当于以下1:

void List<Integer> makeSequence(int begin, int end) {
  List<Integer> ret = new ArrayList<>(end - begin + 1);
  for (int i=begin; i<=end; i++) {
    ret.add(i);
  }
  return ret;  
}
Run Code Online (Sandbox Code Playgroud)

番石榴的使用很好.

更新:

绩效分析

由于这个问题已经收到了几个很好的答案,无论是使用本机Java 8还是第三方库,我都认为我会测试所有解决方案的性能.

第一个测试只是[1..10]使用以下方法测试创建10个元素的列表:

  • classicArrayList:上面在我的问题中给出的代码(和adarshr的答案基本相同).
  • eclipseCollections:下面使用Eclipse Collections 8.0 在Donald的回答中给出的代码.
  • guavaRange:daveb下面的答案中给出的代码.从技术上讲,这不是创造一个List<Integer>而是创造一个ContiguousSet<Integer>- 但由于它Iterable<Integer>按顺序实现,它主要用于我的目的.
  • intStreamRange:下面的Vladimir的答案中给出的代码,它使用了IntStream.rangeClosed()- 这是在Java 8中引入的.
  • streamIterate …

java arrays collections apache-commons guava

105
推荐指数
5
解决办法
8万
查看次数

标签 统计

apache-commons ×1

arrays ×1

collections ×1

guava ×1

java ×1