java – 循环遍历列表时从索引中删除项目
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 循环遍历列表时从索引中删除项目,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1754字,纯文字阅读大概需要3分钟。
内容图文
![java – 循环遍历列表时从索引中删除项目](/upload/InfoBanner/zyjiaocheng/744/df62104767024369a3249d0a281c33e9.jpg)
public boolean isTwoPair() {
boolean isTwoPair = false;
Collections.sort(deck);
List<Card> cards = new LinkedList<Card>(deck);
System.out.println(cards);
for (int i = 0; i < cards.size()-1; i++) {
for (int j = i + 1; j < cards.size()-1; j++) {
if (deck.get(i).equals(deck.get(j))) {
cards.remove(i);
cards.remove(j);
System.out.println(cards);
}
}
}
return isTwoPair;
}
我认为我的问题出在我的cards.remove()上.当我删除卡时,下次卡被删除时,它会从更改的列表中删除它.有没有办法从列表中删除两个具有相同索引号的项目?
如果我必须删除索引0,1,因为它们都是这样的对:
[Ace,Ace,Three,Four,Four]
代码将其删除(删除索引0)
[Ace,Three,Four,Four]
而不是从第一个列表中删除索引1(Ace),而是将其从第二个列表中删除
[Ace,Four,Four]
它从第二个列表中删除了索引1,该列表是三个.
这就是我所期待的
[Three,Four,Four]
在这一点上,我希望我的循环拾取并删除四和四
编辑:
public boolean isTwoPair() {
boolean isTwoPair = false;
Collections.sort(deck);
List<Card> cards = new LinkedList<Card>(deck);
System.out.println(cards);
for (int cardOne = 0; cardOne < cards.size(); cardOne++) {
for (int cardTwo = cardOne + 1; cardTwo < cards.size(); cardTwo++) {
if (deck.get(cardOne).equals(deck.get(cardTwo))) {
cards.remove(cardOne);
cards.remove(cardTwo-1);
System.out.println(cards);
for(int cardThree = 0; cardThree < cards.size(); cardThree++){
for(int cardFour = cardThree+1; cardFour < cards.size(); cardFour++){
if(cards.get(cardThree).equals(cards.get(cardFour))){
cards.remove(cardThree);
cards.remove(cardFour-1);
System.out.println(cards);
isTwoPair = true;
}
}
}
}
}
}
return isTwoPair;
}
这就是我现在正在使用的,如果我不必这样做,我真的不想创建一个新的变量,所以我决定不删除Object
解决方法:
如果你知道j总是大于i(因为for循环),如果你首先删除索引为i的元素,那么你可以删除索引为j – 1的元素得到预期的结果.
cards.remove(i);
cards.remove(j-1);
内容总结
以上是互联网集市为您收集整理的java – 循环遍历列表时从索引中删除项目全部内容,希望文章能够帮你解决java – 循环遍历列表时从索引中删除项目所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。