我如何创作一个集合,确保不会出现两个相同的类型?

时间:2018-05-01 15:46:44

标签: java list collections types

我想创建一个包含一组项目的集合或集合。每个项目都实现了接口WeaponAccessory。但是,我不希望两个具有相同WeaponAccessory类型的项目。所以列表中永远不应该有两个抑制器或两个扩展磁体。

使这更清楚。假设M16类具有WeaponAccessories集合的实例变量。我如何保证此列表不包含同一类型的两个对象(两个抑制器,或两个扩展磁体)?所有附件(抑制器,扩展磁体等等)都是实现WeaponAccessory. So you can create a set or list of WeaponAccessory的类,但我想要不同的类型。

我将如何写这篇文章?

1 个答案:

答案 0 :(得分:1)

听起来你想要一个枚举而不是一个接口,这将使你能够将它融合成一个具有保证唯一性的集合。

public enum WeaponAccessory {
    EXTENDED_MAGAZINE,
    SUPPRESSOR,
    THUMB_GRIP,
    ANGLED_GRIP
}

使用它然后成为一个微不足道的事情,添加你想要的特定类型的武器配件到你想要的任何武器。我将这部分作为练习留给读者。