在 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;
}
我想要一个返回 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;
}