java - 比较和删除 vector 中的相似字符串

标签 java string vector

JAVA:首先,非常感谢您花时间查看我的问题;非常感谢您的帮助!

所以,问题是我有一个 Java 中的对象 vector ,每个对象都有一个名称(字符串)。但是,我有大量重复的对象,并且重复的对象总是直接在它们重复的对象之后。而且重复次数范围为 1-10(太令人沮丧),它完全是随机的。

我将如何删除重复项,我考虑将每个对象名称与 vector 中的下一个对象名称进行比较,并删除所有匹配的对象,但这给了我很多问题。非常感谢您提前提供的帮助!

-迪伦

编辑:只是为了确保您理解我正在谈论的重复类型,我添加了此内容。

  • vector
  • ---Object1(String name = "hi") --> 删除这个。
  • ---Object2(字符串名称 = "hi")
  • ---Object3(字符串名称 = "bob")
  • 结束 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/

    相关文章:

    c++ - 来自 STL 的 vector 与列表 - 删除方法

    java - HttpClient 抛出 SSLException : Received fatal alert:decode_error

    java - 如何正确使用CDATA?

    java - 在 thymeleaf 中使用迭代变量

    java - 如何解析包含特殊字符的JSON字符串?

    c# - 如何从进程内存中删除字符串?

    c++ - C++上的 vector 迭代器

    Java 新手错误 : cannot find symbol

    string - Erlang:将 TCP 发送的字符串转换为正确的形式,例如<<"SomeString">> 到 "SomeString"?

    c++ - 通过头文件函数将二叉搜索树中遍历的数据加载到Vector中