安卓列表迭代器,类铸造错误?请检查我的日志



我什么都不做,只是输入一些测试代码,但它确实有效。

这是我的代码,

@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

最新更新