如何在迭代时删除排序列表中的重复元素?
我有一个对象的排序列表(不是数组),说:
苹果 苹果 梨 梨 梨 桃子
我目前在列表上使用带有迭代器功能的“ for”循环。
for(ListIterator<String> iter = list.listIterator();iter.hasNext();) {
String it = iter.next();
System.out.println(it+" - "+Collections.frequency(list.it));
iter.remove();
}
当我存储了第一个“苹果”后,我希望从列表中完全删除其他“苹果”条目,以便列表中的下一个项目为“梨”。当我存储了第一个“ pear”后,我希望从列表中删除所有重复的“ pear”元素,以便下一个元素为“ peach”。完成迭代后,我应该只包含三个元素:
苹果 梨 桃子
谢谢。
使用列表迭代器是一种在迭代时从列表中删除项目的安全方法:以下代码示例完成了您想要的操作(无需创建重复的列表):
public class RemoveDuplicates
{
public static void main(String... args)
{
List<String> list = new ArrayList<>();
list.add("apple");
list.add("apple");
list.add("pear");
list.add("pear");
list.add("pear");
list.add("peach");
System.out.println("Original list: ");
for (String s : list)
System.out.println(s);
String temp = "";
for (Iterator<String> iterator = list.iterator(); iterator.hasNext();)
{
String s1 = iterator.next();
if (temp.equals(s1))
{
iterator.remove();
}
temp = s1;
}
System.out.println("\nProcessed list:");
for (String s : list)
System.out.println(s);
}
}
程序输出:
Original list:
apple
apple
pear
pear
pear
peach
Processed list:
apple
pear
peach
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句