当前位置: 代码迷 >> J2SE >> 求教关于List的size有关问题
  详细解决方案

求教关于List的size有关问题

热度:153   发布时间:2016-04-24 02:14:30.0
求教关于List的size问题
我想要实现用户在jcheckbox中多选运算符,然后在所选的运算符中随机提出一个运算符。可是假如我循环十次,输出的运算符都是每次选择的运算符中的第一个,没有出现随机输出的情况。所以我用System.out.println(getOpera.size());来查看list的大小,发现,不管我选择了几个运算符,getOpera.size()永远是1。这我就有点蒙了。所以麻烦各位帮帮我,谢谢。
=========================================================
Java code
public List getOper(){        int k=0;        if(getOpera.size()==0){            if(cbAdd.isSelected()){                getOpera.add(k,'+');                k++;            }else if(cbSub.isSelected()){                getOpera.add(k,'-');                k++;            }else if(cbMul.isSelected()){                getOpera.add(k,'*');                k++;            }else if(cbDiv.isSelected()){                getOpera.add(k,'/');                k++;            }        }        return getOpera;    }        public char choiceOper(){        getOper();        Random ranOp = new Random();        int i=ranOp.nextInt(getOpera.size());        System.out.println(getOpera.size());        return (Character) getOpera.get(i);    }


------解决方案--------------------
探讨
if(getOpera.size()==0){

------解决方案--------------------
Java code
public List getOper(){        int k=0;        getOpera.clear(); //每次都清空getOpera,然后重新追加用户选择的符号        //if(getOpera.size()==0){ //这个if不要,否则如果getOpera有元素以后就不会再追加了            if(cbAdd.isSelected()){                getOpera.add(k,'+');                k++;            }             if(cbSub.isSelected()){ //不要用else if,否则满足if就不会进入else if,就不能有多个值了                getOpera.add(k,'-');                k++;            }            if(cbMul.isSelected()){ //这里一样                getOpera.add(k,'*');                k++;            }            if(cbDiv.isSelected()){ //这里一样                getOpera.add(k,'/');                k++;            }        //}        return getOpera;    }        public char choiceOper(){        getOper();        Random ranOp = new Random();        int i=ranOp.nextInt(getOpera.size()); //这样这里才有意义        System.out.println(getOpera.size());        return (Character) getOpera.get(i);    }
  相关解决方案