真正的问题是我有一个序列为B C D A E,现在我将其插入到地图中,如上面的代码所示。现在我的工作是在java中检索具有相同顺序的原始序列。面试时无法回答。很想知道解决方案。
初始序列:B C D A E
Map map = new map();
map.put(C, D);
map.put(B, C);
map.put(A, E);
map.put(D, A);
请求序列:B C D A E
答案 0 :(得分:-1)
您的问题存在问题,您的地图是关键值配对。这意味着您最多只能返回4个元素,不 5。
假设您从B开始并按字母顺序移动。您将遍历键B, C, D, A
并获得C, D, A, E
的结果。
为此,您将创建一个基于地图的迭代器,并在找到键B后开始将项添加到链表中,之前的任何内容都不会输入。将值添加到链接列表时,也可以从迭代器中删除它们。
当第一个循环完成所有4个键时,它将在链表中有C, D, A
,并且由于您删除了所有先前的元素,因此地图现在的大小为1。此时,您的字母顺序是有保证的,因此您可以再次遍历列表,但将剩余项目添加到链接列表中。这将产生一个包含C, D, A, E
的链表。迭代器很便宜。但是只有因为你只有4个元素才能得到{{1>} NO WAY 。所以,如果这真的是你给出的问题。
告诉他们,如果给出4的地图,则无法取回5个元素。
B C D A E