所以我有这个获取一些产品实例的代码,它会提供产品ID和其他一些东西。现在由于某些原因,数据库返回一些重复的信息,我需要删除重复的信息,并根据产品ID将集合按字母顺序排序。产品ID值是像alex,robert,stephanie等名字。我做了一个搜索,但仍然不知道如何解决,可能是因为我是Java的新手,所以我想问你是否可以帮助我得到一个直接的答案问题。
public static Collection<Product> getProductInstances() {
return Collections.unmodifiableCollection(INSTANCES.values());
}
public interface Product {
public String getProductId();
}
答案 0 :(得分:0)
首先,您不能对不可修改的集合进行排序(修改)。
但是,给定一个集合,您可以按如下方式获取已排序和重复数据集:
Set<String> set = new TreeSet<>(Comparator.comparing(Product::getId));
set.addAll(getProductInstances());
对集合的迭代将按照id顺序进行,并且作为Set将没有重复 - TreeSet定义“相等”作为比较相等的元素。