用Java创建列表[x-n,x-n+;1,…,x,x+;1,x+;2,…,x+;n]
我想得到一个返回ArrayList的方法,如下所示:用Java创建列表[x-n,x-n+;1,…,x,x+;1,x+;2,…,x+;n],java,implementation,Java,Implementation,我想得到一个返回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,.
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()
的有效实现是什么?这是用于循环的代码,它的初始值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 ;
}
公共列表getList(intx,intn){
int较低=x-n;
整数上限=x+n;
List ls=新的ArrayList();
对于(inti=lower;i代码基本上循环数组一次。为了使代码健壮,必须考虑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;
}
公共列表getList(intx,intn){
ArrayList returnVal=新的ArrayList();
if(n<0){
对于(int i=n;i)您对“高效”的描述不清楚。您是指最简单的实现?还是指最快且内存使用量最小的实现?
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;
}