假设有个数不定元素的列表,需要从中取N个,起始位置不限,你怎么编写程序.
很多人开始进行上下限的判断,出来一堆if else,但if else天生就不容易理解.因为if else是机器语言的特征,而不是人类语言的特征(另外一个是循环,这个观点是俺原创,版权所有).符合人类语言的是Try...Catch...,简洁明了又不容易出错.
下面是例子.
int start=pageIndex*pageSize;
int end=start+pageSize;
for(int i=start;i<end;i++){
try{
todoResult.addTodo((Todo)allTodoes.get(i));
}
catch(Exception ex){
continue;
}
}
上面黑体部分的中心思想是,不管原链表,直接从下限开始往上限取,出现Index异常了重来,取多少算多少,这就是容易理解的人类思维.
