您好我有一个集合,我想从我的集合中删除一个值,如果它有重复。 如果我的值有重复,我想删除我的值和重复
以下是我的收藏声明:
Collection<item> result = new Vector<item>();
我通过SQL查询完成了我的收藏
答案 0 :(得分:2)
Set
作为数学集合,因此不允许重复本质。
在实践中,每当您.add()
和项目对象时,它都会检查(通过.equals()
和.hashCode()
)该项目是否已在您的Set
中。它会忽略它。
答案 1 :(得分:0)
如果您不想要重复,也许应该考虑使用Set
。
答案 2 :(得分:0)
如果我的值有重复,我想删除我的值和重复的
以下是如何操作:
1. Create a dictionary in which the key is an item, and the value is an int.
2. Enumerate the items in your collection. For each item:
2.1. If the item is already in the dictionary, get the value, increment it,
and put it back in the dictionary. Otherwise, put the item in the
dictionary with a value of 1.
3. Enumerate the items in your dictionary. For each item:
3.1 Get the corresponding value of the item from the dictionary, and if
it is greater than 1, remove all occurrences of that item from the
collection.
当然,为了使其工作,你的'item'必须具有值语义,而不是对象语义。在实践中,这意味着它必须具有Equals()方法以及GetHashCode()方法,该方法考虑对象的内容,而不是对象引用。