JAVA:首先,非常感谢您花时间查看我的问题;非常感谢您的帮助!
所以,问题是我有一个 Java 中的对象 vector ,每个对象都有一个名称(字符串)。但是,我有大量重复的对象,并且重复的对象总是直接在它们重复的对象之后。而且重复次数范围为 1-10(太令人沮丧),它完全是随机的。
我将如何删除重复项,我考虑将每个对象名称与 vector 中的下一个对象名称进行比较,并删除所有匹配的对象,但这给了我很多问题。非常感谢您提前提供的帮助!
-迪伦
编辑:只是为了确保您理解我正在谈论的重复类型,我添加了此内容。
编辑2:添加代码
public class Vector
{
public static void main(String args[])
{
Person person1 = new Person("jane");
Person person2 = new Person("jane");
Person person3 = new Person("bob");
Person person4 = new Person("shelly");
Vector<Person> vectorObject = new Vector<Person>
vectorObject.add(person1);
vectorObject.add(person2);
vectorObject.add(person3);
vectorObject.add(person4);
}
}
class Person
{
String name = null;
String bDay = null;
String color = null;
public Person(String name)
{
this.name = name;
}
}
最佳答案
看来您应该使用不同的数据结构。
您可能想使用Set而不是 vector 。集合不包含重复元素。您必须重写 equals(Object)
方法。
或者使用 Map以 name 属性为键值,并将相应的 Person 对象存储为值。
在这两种情况下,您都可以防止重复,而不是事后删除它们。
Person person1 = new Person("jane");
Person person2 = new Person("jane");
Person person3 = new Person("bob");
Person person4 = new Person("shelly");
Map<String, Person> nameToPerson = new HashMap<>();
nameToPerson.add(person1.name, person1);
nameToPerson.add(person2.name, person2);
nameToPerson.add(person3.name, person3);
nameToPerson.add(person4.name, person4);
Collection<Person> noDuplicatesHere = map.values();
关于java - 比较和删除 vector 中的相似字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11820809/