Java 我能在地图上有两把同名的钥匙吗?

Java 我能在地图上有两把同名的钥匙吗?,java,Java,我正在尝试创建一个树形图。以性格为关键。 我试图通过运行Person类型的向量来创建它。 然后从人名中获取第一个字母,并将其作为地图中的键。 例如: 我有4个人,他们的名字以P开头。 我想在向量上运行,并创建一个键为P的Map public class Phonebook{ static Vector<Map<Character, Vector<Person>>> mapVector = new Vector<>(); public vo

我正在尝试创建一个
树形图
。以性格为关键。 我试图通过运行Person类型的向量来创建它。 然后从人名中获取第一个字母,并将其作为地图中的键。 例如: 我有4个人,他们的名字以P开头。 我想在向量上运行,并创建一个键为P的
Map

public class Phonebook{
    static Vector<Map<Character, Vector<Person>>> mapVector = new Vector<>();

public void makePhonebook(){
        Iterator<Person> personIterator =  PeopleDets.getPersons().iterator();
        while (personIterator.hasNext()){
            Person temp = (Person)personIterator.next();
            mapVector.add(new TreeMap<>().put((temp.getName().charAt(0)), );
        }

    }
公共类电话簿{
静态向量mapVector=新向量();
公用电话簿(){
迭代器personIterator=PeopleDets.getPersons().Iterator();
while(personIterator.hasNext()){
Person temp=(Person)personIterator.next();
add(newtreemap().put((temp.getName().charAt(0)),);
}
}
我的问题是,它会为p字母创建1
Map
,并使用更多的代码创建一个以p开头的人物向量,还是创建一个以p为键的类似4的Map

我能在地图上有两把同名的钥匙吗

否。
Map
要求所有密钥都是唯一的。请查看以下位置的文档:

新的重复密钥将覆盖上一个重复密钥的值,例如

import java.util.HashMap;
import java.util.Map;

public class Main {
    public static void main(String[] args) {
        Map<String, String> map=new HashMap<String,String>();
        map.put("A", "Apple");
        map.put("A", "Anchor");
        System.out.println(map);
    }
}

答案是否定的。但是,根据你提供的例子,你可以查看。或者考虑一个排序列表,如果电话簿不是一个非常大的集合。

那么,如果我这样做,它会用这个键创建一个地图?或者它会抛出一个扣子吗?无论你试图链接到什么都不起作用…
{A=Anchor}