java - 如何在 map 中使用已制作的 vector ?

标签 java

我正在尝试用 java 制作电话簿。 我硬编码了 Person Vector<Person> 类型的 vector 。 并在其中添加了人。 现在我有一个Phonebook Class并在其内部作为一个字段。我有一个 Map<Character, Vector<Person>> mp = new TreeMap<>(); 。 我有接受字符的方法。它应该打印所有名字以硬编码 vector 中的字符开头的人。 我怎样才能制作硬编码VectorMap 的值?

我的电话簿:

private Map<Character, Vector<Person> > phoneBook = new TreeMap<>();


public Vector<Person> getListPeople(Character character){

    Vector<Person> vecPerson = phoneBook.values().iterator().next(); // should bring back the vector i want to use
    System.out.println(vecPerson);
    Iterator<Person> persons = vecPerson.iterator();
    while(persons.hasNext()){
        Person temp = persons.next();
        if(temp.getName().startsWith("" + character)){
            System.out.println(temp);
        }
    }
    return vecPerson;
}

public String getIndividualNumber(String name){
    Character myChar = name.charAt(0);
     Vector<Person> personas = (Vector<Person>) getListPeople(myChar);
     Iterator<Person> myItr = personas.iterator();
     while (myItr.hasNext()){
         Person temp = myItr.next();
         if(temp.getName().equals(name)){
             return temp.toString();
         }
     }
     return null;
}

最佳答案

你可以这样做:

Vector<Person> v;
Map<Character, Person> dictionary= new TreeMap<>();
v.forEach(it -> dictionary.put(it.name.charAt(0), it));

关于java - 如何在 map 中使用已制作的 vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59161473/

相关文章:

java - Wicket 的对象序列化问题

java - 如何将带有gradle的源代码热部署到tomcat7中?

java - 排除 TestNG 中不在套件中的组

java - 制作两个选项窗口的最佳方法是什么?

java - Orientdb 与 OCommandSQL 匹配返回 null 顶点

java - 从文件读取文本 IO 异常

java - Apache Wicket 6.12 扩展库

java - Tomcat7 启动时间过长

java - 在 JFace 树查看器中为一些特定的树着色

java - 自动从服务器下载到我的服务器