有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

列表从Java中的ArrayList获取唯一值

我有一个ArrayList有许多记录,其中一列包含CO2 CH4 SO2等气体名称。现在我只想检索不同的气体名称(唯一),而不需要重复ArrayList。怎么做呢


共 (3) 个答案

  1. # 1 楼答案

    我希望我正确地理解了您的问题:假设值是String类型,最有效的方法可能是转换为HashSet并对其进行迭代:

    ArrayList<String> values = ... //Your values
    HashSet<String> uniqueValues = new HashSet<>(values);
    for (String value : uniqueValues) {
       ... //Do something
    }
    
  2. # 2 楼答案

    你应该使用^{}。ASet是不包含重复项的Collection

    如果有一个^{}包含重复项,则可以获得如下唯一项:

    List<String> gasList = // create list with duplicates...
    Set<String> uniqueGas = new HashSet<String>(gasList);
    System.out.println("Unique gas count: " + uniqueGas.size());
    

    注意:这个HashSet构造函数通过调用元素“equals()方法来识别重复项

  3. # 3 楼答案

    你可以用它来制作一个独特的列表

    ArrayList<String> listWithDuplicateValues = new ArrayList<>();
    list.add("first");
    list.add("first");
    list.add("second");
    
    ArrayList uniqueList = (ArrayList) listWithDuplicateValues.stream().distinct().collect(Collectors.toList());