我什么都不做,只是输入一些测试代码,但它确实有效。
这是我的代码,
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new MySurfaceView(this));
List<String> list = new ArrayList<>();
for(int i = 0; i<10; i++){
list.add(""+ ((int) Math.random()*100));
}
ListIterator ite = list.listIterator();
while (ite.hasNext()){
Log.d("MainActivity", "ite.next("+ite.nextIndex()+") #"+ite.next());
}
}
和日志,
10-09 15:12:26.913 .com.iteratortest002 D/MainActivity﹕ ite.next(0) #0
10-09 15:12:26.913 .com.iteratortest002 D/MainActivity﹕ ite.next(1) #0
10-09 15:12:26.913 .com.iteratortest002 D/MainActivity﹕ ite.next(2) #0
10-09 15:12:26.913 .com.iteratortest002 D/MainActivity﹕ ite.next(3) #0
10-09 15:12:26.923 .com.iteratortest002 D/MainActivity﹕ ite.next(4) #0
10-09 15:12:26.923 .com.iteratortest002 D/MainActivity﹕ ite.next(5) #0
10-09 15:12:26.923 .com.iteratortest002 D/MainActivity﹕ ite.next(6) #0
10-09 15:12:26.923 .com.iteratortest002 D/MainActivity﹕ ite.next(7) #0
10-09 15:12:26.923 .com.iteratortest002 D/MainActivity﹕ ite.next(8) #0
10-09 15:12:26.923 .com.iteratortest002 D/MainActivity﹕ ite.next(9) #0
所有数字都有"0"发生了什么事?
您需要
在Math.random()*100
两边加上括号以覆盖优先级。
list.add(""+ ((int) (Math.random()*100)));
否则,(int)
只是将浮点数0.0
转换为1
(独占(,由 random()
返回0
第一个,当乘以 100
时,再次得到0
。