使用arraylist删除数组中的重复项失败
发布时间:2020-12-15 04:15:41 所属栏目:Java 来源:网络整理
导读:我想通过使用数组列表从数组中删除重复项.代码似乎适用于所有情况,除非String []数组包含三个元素副本.为什么会出现这个问题以及如何解决? Test input - array = {"D22","D22","D22"};Output = D22D22Expected output = D22public static String[] removeDu
我想通过使用数组列表从数组中删除重复项.代码似乎适用于所有情况,除非String []数组包含三个元素副本.为什么会出现这个问题以及如何解决?
Test input - array = {"D22","D22","D22"}; Output = D22 D22 Expected output = D22 public static String[] removeDuplicates(String [] array){ String [] noDups = null; ArrayList<String> copy = new ArrayList<String>(); String first = ""; String next = ""; for(String s: array){ copy.add(s.trim());//Trimming } for(int i = 0; i < copy.size(); i++){ for(int j = i + 1; j < copy.size(); j++){ first = copy.get(i); next = copy.get(j); if(first.equals(next)){ copy.remove(j); } } } noDups = copy.toArray(new String[copy.size()]); for(String s: noDups){ System.out.println(s); } return noDups; } 解决方法
这是因为当你调用remove时,你的计数器也会增加,导致它跳过一个元素.就像是
if(first.equals(next)){ copy.remove(j); j--; } 应该解决这个问题 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Spring Boot容器加载时执行特定操作(推荐)
- HttpClient通过GET和POST获取网页内容
- Java小程序求圆的周长和面积实例 原创
- Java替换中使用正则表达式实现中间模糊匹配
- java – 为什么在LinkedHashMap中迭代桶的速度比HashMap快?
- java – Eclipse中的JPA Project和EJB Project有什么区别?
- JavaDoc – 我可以将方法分成组吗?
- Java实现的utf8,gbk,unicode编码相互转换的代码
- Java – 如何:使用Play Framework 2.1为初学者访问RESTful
- java – GWT RequestBuilder – 跨站请求