哪个集合适合电话号码+;Java中的名称对?

哪个集合适合电话号码+;Java中的名称对?,java,loops,collections,multimap,Java,Loops,Collections,Multimap,我正在尝试将以下几对添加到集合中 698xxxxxx-角色 698xxxxxx-个人 699xxxxxxx-角色 699XXXXXX-个人B 我浏览了很多文件,并试图将我在那里找到的配对添加到一个集合中。我希望能够有一个表格,可以显示每个数字,以及它与哪些人相关,而不必有重复的配对。比如说 1-personA ok 1人B好的 2-角色ok 三人行 3个人不好,因为已经在那里了 我试着使用多重贴图,但我不确定这是否是正确的选择。无论解决方案是什么,请告诉我如何通过它的值进行迭代,以便我可以使用这

我正在尝试将以下几对添加到集合中

698xxxxxx-角色

698xxxxxx-个人

699xxxxxxx-角色

699XXXXXX-个人B

我浏览了很多文件,并试图将我在那里找到的配对添加到一个集合中。我希望能够有一个表格,可以显示每个数字,以及它与哪些人相关,而不必有重复的配对。比如说

1-personA ok

1人B好的

2-角色ok

三人行

3个人不好,因为已经在那里了

我试着使用多重贴图,但我不确定这是否是正确的选择。无论解决方案是什么,请告诉我如何通过它的值进行迭代,以便我可以使用这些对。很抱歉,这篇文章要求很高,但我是Java新手,我发现lil很难理解API


提前感谢

您可以选择Java中的Map接口,它接受键和值对


您可以将此作为参考:

您可以选择Java中的Map接口,它接受键和值对


您可以将此作为参考:

您可能需要一个hashmap,其中键作为人名,值作为一组数字。Hashset不允许重复,因此重复的数字不会存储在该集合中。代码如下:

HashMap<String,HashSet> Records;
HashMap记录;

您可能需要一个hashmap,其中键是人名,值是一组数字。Hashset不允许重复,因此重复的数字不会存储在该集合中。代码如下:

HashMap<String,HashSet> Records;
HashMap记录;

根据您的需要,有三种明显的选择

  • 如果每个电话号码只能有一个人,则需要一个简单的
    地图

  • 如果一个给定的电话号码可以与多个人关联,则可以是
    Map
    或多地图类

  • 如果你还想找出每个人的电话号码,你需要两张地图或两张多重地图。。。或者是双向地图

您需要做第二个选择:哈希表和基于树的组织。哈希表将为您提供
O(1)
lookup/insert/remove(假设哈希函数良好)。基于树的实现提供了
O(logN)
操作。。。但它也允许您按键顺序迭代条目(或值)


虽然标准Java类库不提供多映射或双向映射,但它们可以通过组合简单的集合类轻松实现。

根据需要,有三种明显的替代方案

  • 如果每个电话号码只能有一个人,则需要一个简单的
    地图

  • 如果一个给定的电话号码可以与多个人关联,则可以是
    Map
    或多地图类

  • 如果你还想找出每个人的电话号码,你需要两张地图或两张多重地图。。。或者是双向地图

您需要做第二个选择:哈希表和基于树的组织。哈希表将为您提供
O(1)
lookup/insert/remove(假设哈希函数良好)。基于树的实现提供了
O(logN)
操作。。。但它也允许您按键顺序迭代条目(或值)


虽然标准Java类库不提供多映射或双向映射,但它们可以通过组合简单的集合类轻松实现。

在Java中有两个选项。如果你不知道人或数字的基数,那么就选择:

public class Pair {
  String person;
  String number;
  }
然后使用要从Doublets保存的集,如

Set<Pair> pairs = new HashSet<>();
....
pairs.add( new Pair( "689xxxx", "personA" );
for ( Pair pair : pairs ) {
  System.out.println( pair.number + " - " + pair.person );
}
Set pairs=new HashSet();
....
添加(新的一对(“689xxxx”,“人物”);
for(成对:成对){
System.out.println(pair.number+“-”+pair.person);
}

Hajo在Java中有几个选项。如果你不知道人或数字的基数,那么选择:

public class Pair {
  String person;
  String number;
  }
然后使用要从Doublets保存的集,如

Set<Pair> pairs = new HashSet<>();
....
pairs.add( new Pair( "689xxxx", "personA" );
for ( Pair pair : pairs ) {
  System.out.println( pair.number + " - " + pair.person );
}
Set pairs=new HashSet();
....
添加(新的一对(“689xxxx”,“人物”);
for(成对:成对){
System.out.println(pair.number+“-”+pair.person);
}

Hajo

消费者使用哈希映射。但是想想你的唯一键是什么,tel+person,或者tel。消费者使用哈希映射。但是想想你的唯一键是什么,tel+person,或者tel。