【问题标题】:Don't use .clear to clear your List不要使用 .clear 清除您的列表
【发布时间】:2015-05-19 20:42:49
【问题描述】:

我需要对传递给我的方法的列表中的重复项进行排序和删除。但是,我不应该在我的列表中使用 .clear,所以我不确定如何让我的列表只包含我的 hashSet 中的内容。

public static void sortAndRemoveDups(List<Integer>listToFix)
{
    Set<Integer> listToFix1 = new HashSet<>(listToFix);
    listToFix.clear();
    listToFix.addAll(listToFix1);
    System.out.println(listToFix);
}

【问题讨论】:

  • 我认为您应该对列表进行排序并删除重复项而不使用哈希集。
  • 如何从 HashSet 创建一个新的 ArrayList。
  • 实际上其中一个要求是使用集合作为我们解决方案的一部分。
  • 您是不是专门禁止使用clear(),还是更普遍地禁止清除List?你总是可以手动遍历列表和remove()所有元素。
  • 另一个要求是修改原始列表内容。

标签: java list hashset


【解决方案1】:

非常基本的方法是:

public static void sortAndRemoveDups(List<Integer>listToFix)
{
    Set<Integer> listToFix1 = new HashSet<>(listToFix);
    for(Integer i : listToFix1){
        listToFix.removeAll(i);
        listToFix.add(i);
    }
    System.out.println(listToFix);
}

PS:如果你还有什么需求,不如加到OP中。

【讨论】:

  • 对不起,我会确保在下次开始时添加所有要求。
猜你喜欢
  • 2011-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-26
  • 1970-01-01
  • 2011-07-05
相关资源
最近更新 更多