为了账号安全,请及时绑定邮箱和手机立即绑定

重构 for 循环和错误

重构 for 循环和错误

暮色呼如 2022-01-19 10:30:31
这种方法是检查重复变量。最近我发现了一种新语法:for-loop(String s: List) like this.我试图将该新指令应用于我当前的代码,但它会导致错误Type mismatch: cannot convert from element type String to Integer我想重构我的代码(请告诉我)为什么 for syntax ( for (Integer i : duplicateList) // for (Integer k :checkList) ) 有错误?有什么方法可以应用这种新语法吗?或任何其他建议?这是我的原始代码:public List<String> checkDuplicateInArray(List<String> checkList) {    Set<String> unique = new HashSet<>();    Set<String> duplicate = new HashSet<>();    for (String val : checkList) {        (unique.contains(val) ? duplicate : unique).add(val);    }    List<String> duplicateList = new ArrayList<>(duplicate);    //**************I want to change this part..*************    for (int i = 0; i < duplicateList.size(); i++) {        int a = 0;        for (int k = 0; k < checkList.size(); k++) {            if (duplicateList.get(i).trim().equals(checkList.get(k).trim())) {                if(a!=0){                    checkList.set(k, checkList.get(k) + a);                    }                a++;            }        }    }           return checkList;}这是我改变它的方式(产生错误):类型不匹配:无法从元素类型 String 转换为 Integer    for (Integer i : duplicateList) {        int a = 0;        for (Integer k :checkList) {            if (duplicateList.get(i).trim().equals(checkList.get(k).trim())) {                if(a!=0){                    checkList.set(k, checkList.get(k) + a);                    }                a++;            }        }    }请问有什么帮助吗?
查看完整描述

1 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

你声明:

Set<String> duplicate = new HashSet<>();

但是您尝试在 Integer 上进行迭代:

for (Integer i : duplicateList) {

所以你自然必须尊重类型:

for (String s : duplicateList) {


查看完整回答
反对 回复 2022-01-19
  • 1 回答
  • 0 关注
  • 182 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号