我有一个列表,我想获得i-1
,i
和i+1
位置的值。什么时候i
是第一个或最后一个索引,它会抛出一个IndexOutOfBoundsException
. 为了防止这种情况,我会写一些if-statements
并像这样对其进行硬编码:
if (i == 0){
a = list.get(list.size()-1);
b = list.get(0);
c = list.get(1);
} else if (i == list.size()-1){
a = list.get(i-1);
b = list.get(i);
c = list.get(0);
} else {
a = list.get(i-1);
b = list.get(i);
c = list.get(i+1);
}
我发现这种方式有点静态。假设我想以n
这种方式从列表中获取条目,你会怎么做?