我正在寻找一个简单的设置在Java中只有提供以下功能。简单设置只有“包含”方法
Set.add(String s);
Set.contains(String s);
我不需要检索该集合的任何元素。我想要做的就是检查一个字符串是否包含在其中。 Java中有这样的数据结构吗?
编辑:我知道我可以使用像HashSet等集合实现...但我想要一个简单的数据结构只有上面列出的两种方法。
编辑2:我在一个内存受限制的系统,这就是为什么。
我正在寻找一个简单的设置在Java中只有提供以下功能。简单设置只有“包含”方法
Set.add(String s);
Set.contains(String s);
我不需要检索该集合的任何元素。我想要做的就是检查一个字符串是否包含在其中。 Java中有这样的数据结构吗?
编辑:我知道我可以使用像HashSet等集合实现...但我想要一个简单的数据结构只有上面列出的两种方法。
编辑2:我在一个内存受限制的系统,这就是为什么。
使用HashSet<String>
,既具有add()
,contains()
功能,但它不会允许重复
重点是*只*,我不想要一个完整的集合实现。见评论问题。 – Roland
@Roland:放弃其他方法不会让你更轻量化。你在这里的目标是什么?你是否在内存受限的系统上? – user2357112
是的,内存受限系统。 – Roland
可以extends
的HashSet
类和改变其行为。
public class CustomHashSet<String> extends HashSet<String> {
@Override
public boolean add(String e) {
return false;
}
}
我不会推荐这样做,你违反了LSP。只需推出自己的界面,并通过Set – tddmonkey
如果你只能在本地使用此功能,只需用HashSet
,坚持非写 - 如果需要此功能的应用范围,写一个HashSet
支持一个自己的类。
所以,如果你想要一套仅提供add
和contains
方法,那么......定义它!
interface MinimalisticSet<T> {
void add(T element);
boolean contains(Object object);
}
一个支持java.util.Set
的实现将会非常简单。
HashSet似乎合适。 –
你想要一套专门不支持任何其他操作的套件吗?这似乎是一个奇怪的事情想要。 – user2357112
HashSet不允许多次存储相同的字符串。 – Bhoot