【问题标题】:filter duplicate elements from an array using collection使用集合过滤数组中的重复元素
【发布时间】:2021-06-29 06:37:49
【问题描述】:

我没有解决 processList 错误。 我正在使用集合来过滤数组中的重复元素并打印为列表。 形成一个从 0 到 9 的数字列表。 插入一组从 0 到 5 的新数字。

package programming;
    
    import java.awt.List;
    import java.util.ArrayList;
    import java.util.HashSet;
    import java.util.Set;
    
    public class FillterDublicateElementFromArrayPrintList2 {
        public static void main(String[] args) {
    
            ArrayList<String> list = new ArrayList<String>();
    
            // Form a list of numbers from 0-9.
            for (int i = 0; i < 10; i++) {
                list.add(String.valueOf(i));
            }
    
            
            for (int i = 0; i < 5; i++) {
                list.add(String.valueOf(i));
            }
    
            System.out.println("Input list : " + list);
            System.out.println("\nFiltered duplicates : " + processList(list));
        }
    
        public static Set<String> processList(List<String> listContainingDuplicates) {
    
            final Set<String> resultSet = new HashSet<String>();
            final Set<String> tempSet = new HashSet<String>();
    
            for (String yourInt : listContainingDuplicates) {
                if (!tempSet.add(yourInt)) {
                    resultSet.add(yourInt);
                }
            }
            return resultSet;
        }
    }

【问题讨论】:

  • 那么问题到底是什么。你有错误吗?错误的结果?
  • 现在有什么问题?
  • 您的预期输出是什么?你得到了什么?您是否使用调试器单步执行了您的代码?
  • 重复值是 0-4,而不是 0-5。
  • 按照你这样做的方式,你会得到在输入列表中出现多次的所有元素。

标签: java arrays list collections


【解决方案1】:

你在实现你的processList函数时肯定有逻辑问题,你可以按照以下步骤:

  1. 将列表中的所有元素放在一个集合中。
  2. 创建一个新列表。
  3. 迭代集合,然后将集合的每个元素放入新列表中。
  4. 返回新列表。 完成。

【讨论】:

    猜你喜欢
    • 2021-01-01
    • 2011-06-29
    • 2020-02-12
    • 2021-04-24
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 2021-02-14
    • 1970-01-01
    相关资源
    最近更新 更多