当前位置: 首页 > 面试题库 >

Java订购地图

倪振海
2023-03-14
问题内容

在Java中,是否有一个对象的作用类似于用于存储和访问键/值对的Map,但是可以返回键的有序列表和值的有序列表,从而使键和值列表的顺序相同?

因此,按照代码进行解释,我正在寻找某种行为,就像我的虚拟OrderedMap:

OrderedMap<Integer, String> om = new OrderedMap<>();
om.put(0, "Zero");
om.put(7, "Seven");

String o = om.get(7); // o is "Seven"
List<Integer> keys = om.getKeys();
List<String> values = om.getValues();

for(int i = 0; i < keys.size(); i++)
{
    Integer key = keys.get(i);
    String value = values.get(i);
    Assert(om.get(key) == value);
}

问题答案:

该SortedMap的接口(与实施TreeMap的)应该是你的朋友。

该接口具有以下方法:

  • keySet() 它以升序返回一组键
  • values() 它以对应键的升序返回所有值的集合

因此,此接口完全可以满足你的要求。但是,密钥必须具有有意义的顺序。否则,你可以使用LinkedHashMap,其顺序由插入顺序决定。



 类似资料:
  • 我有一个熊猫数据框,它有两列。 我需要“伯爵”专栏下令的情节。

  • 问题内容: 我正在寻找一种数据结构的Java实现,该实现包含一组元素的集合,为这些元素定义了 部分排序 ,并且允许以某种 拓扑顺序 对这些元素进行迭代(任何可能的排序都可以;最好是稳定的)随着集合内容的变化而排序)。 理想的情况下,将落实一个,或接口,并支持所有的接口上的方法。在指定总排序方面,可以使用实例化集合,并且如果比较的两个元素彼此之间没有排序,则比较器可以引发异常(?)。另外,如果插入的

  • 问题内容: 我有一个与数据库对话的servlet,然后返回一个有序(按时间排序)对象的列表。在servlet部分,我有 从日志中,我可以看到数据库以正确的顺序返回了User对象。 在前端,我有 但是顺序改变了。 我只在返回的列表很大(超过130个用户)时才注意到这一点。 我尝试使用Firebug进行调试,Firebug中的“响应选项卡”显示列表的顺序与servlet中的日志不同。 我做错了什么吗?

  • 我是Flink的新手,我试图理解Flink是如何在其的并行抽象中命令调用。考虑这个产生部分和的流的例子: 我希望它的输出是流:。事实上,就在这里。 是否可以安全地假设这种情况始终存在,尤其是在从具有大量并行性的源读取数据时?

  • 问题内容: 我有一个Vehicles的PriorityQueue,其中有一个项目未正确订购。我认为我的compareTo中有些东西很奇怪,但是我找不到它。 我有一个主类,它创建PriorityQueue,创建一堆Vehicle对象,然后将它们添加到队列中。 我期望这个输出: 但是我得到了这个: 问题答案: 您的队列和方法可能正常工作。请注意API关于它的说明: 此类及其迭代器实现Collectio

  • 问题内容: 是否可以对第一个查询进行排序并保留返回的行作为第一行,而不对第二个查询进行排序。(如果有道理) 我当前查询的一个示例是: 我希望“苹果”类别下的设备将按照该列表的顺序进行组织,并位于其他设备上方的列表顶部。但这似乎使两个查询混杂在一起。 问题答案: 您需要引入一个人工排序键。就像是: