删除排序列表中的重复元素

戴夫

如何在迭代时删除排序列表中的重复元素?

我有一个对象的排序列表(不是数组),说:

苹果
苹果
桃子

我目前在列表上使用带有迭代器功能的“ 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章