例如,我有一个对象列表
List<Document> myList = new ArrayList<Document>();
myList.add(new Document("TypeA"));
myList.add(new Document("TypeB"));
myList.add(new Document("TypeA"));
myList.add(new Document("TypeA"));
myList.add(new Document("TypeB"));
现在每个文档都有一个不同的类型属性,这就是我传递给构造函数的属性(这不是真实情况,只是试图简化它。
我需要做的是,向所有具有相同类型的 Document 对象添加一个新属性“counter”。因此,具有“TypeA”的三个 Document 对象需要具有递增的计数器值 (1,2,3)。如果只有一个具有特定类型的文档,那么它不应该有计数器值。
所以我想我基本上需要以某种方式过滤(分组)它们,然后迭代它们。但我怎样才能有效地做到这一点呢?
我有 JavaScript 背景,这对我来说很容易,但我发现 Java 似乎很复杂。
最佳答案
您可以使用存储计数的数据结构,例如 Bag
Bag is a collection that allows storing multiple items along with their repetition count:
Bag<Integer> bag = new HashBag<>( Arrays.asList(1, 2, 3, 3, 3, 1, 4)); assertThat(2, equalTo(bag.getCount(1)));
关于java - 获取所有重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59156830/