在 Java 中创建列表 [x-n, x-n+1,...,x,x+1,x+2,...x+n]

Create List [x-n, x-n+1,...,x,x+1,x+2,...x+n] in Java

我想要一个返回 ArrayList 的方法,如下所示:

int x = ...;
int n = ...;
List<Integer> list = getList(x,n);
System.out.println(list.size()) // => 2n+1
int i = ...;
for(int elem : list){
  System.out.println(elem);
} // => x-n, x-n+1, x-n+2,..., x-1, x, x+1,..., x+n

例如,

getList(3,1) // => [2,3,4]
getList(5,3) // => [2,3,4,5,6,7,8]

getList() 的有效实施是什么?

这是主要用于循环的代码,它的初始值为 x-n,它将循环到 x+n

    public List<Integer> getList(int x,int n){
        int lower = x-n ; 
        int upper = x + n ; 
        List<Integer> ls= new ArrayList<Integer>() ; 
        for(int i = lower ; i<=upper ; i++){
            ls.add(i) ; 
        }

   return ls ; 
}

代码基本上循环数组一次。为了让您的代码健壮,您必须考虑 n 为零或负数的情况。

public List<Integer> getList(int x, int n) {
    ArrayList<Integer> returnVal = new ArrayList<Integer>();
    if (n < 0) {
        for (int i = n; i <= -n; i++) {
             returnVal.add(i + x);
        }
    }
    else {
        for (int i = -n; i <= n; i++) {
             returnVal.add(i + x);
        }
    }
    return returnVal;
}