A**u 发帖数: 2458 | 1 别人的面经
一个嵌套Map, 就是一个HashMap, 它的value可以是一个element也可以是另外一个
嵌套map或是空的map. 实现一个iterator来遍历这个map里面的所有element。 就是类
似树遍历一样的方法 |
s*****r 发帖数: 43070 | 2 每遇到一个Map都建一个iterator,用stack保存 |
A**u 发帖数: 2458 | 3 大牛 有code没
或者哪里有书
这题看到两次了,都不会
【在 s*****r 的大作中提到】 : 每遇到一个Map都建一个iterator,用stack保存
|
s*****r 发帖数: 43070 | 4 code就不写了,大概思路:每次getNext(),用当前Iterator的getNext(),如果是
Element,就返回,如果是Map,就建一个Iterator,push当前的Iterator到stack,用
新的Iterator的getNext(),这里可能有循环。如果getNext()返回为空,放弃当前
Iterator,Pop Stack上面的,用Pop的Iterator的getNext().
【在 A**u 的大作中提到】 : 大牛 有code没 : 或者哪里有书 : 这题看到两次了,都不会
|
A**u 发帖数: 2458 | 5 好吧 多谢了
【在 s*****r 的大作中提到】 : code就不写了,大概思路:每次getNext(),用当前Iterator的getNext(),如果是 : Element,就返回,如果是Map,就建一个Iterator,push当前的Iterator到stack,用 : 新的Iterator的getNext(),这里可能有循环。如果getNext()返回为空,放弃当前 : Iterator,Pop Stack上面的,用Pop的Iterator的getNext().
|
r*****d 发帖数: 346 | 6 你是不是指一个hashtable H, 它的 pairs中的each value可以是一个
element也可以是另一个hashtable(包括空的),然后要遍历H?
【在 A**u 的大作中提到】 : 别人的面经 : 一个嵌套Map, 就是一个HashMap, 它的value可以是一个element也可以是另外一个 : 嵌套map或是空的map. 实现一个iterator来遍历这个map里面的所有element。 就是类 : 似树遍历一样的方法
|
y****n 发帖数: 743 | 7 "就是类似树遍历一样的方法",LZ最后这句话是原题中的,还是自己加的?
这道题至少要想面试官明确:
- 是否有循环?比如:A包含值B,B包含值A。
- 是否有Map是多个其他Map的值。比如:A包含值C,B也包含值C。
【在 A**u 的大作中提到】 : 别人的面经 : 一个嵌套Map, 就是一个HashMap, 它的value可以是一个element也可以是另外一个 : 嵌套map或是空的map. 实现一个iterator来遍历这个map里面的所有element。 就是类 : 似树遍历一样的方法
|
A**u 发帖数: 2458 | 8 别人的面经 linkedin那个
【在 y****n 的大作中提到】 : "就是类似树遍历一样的方法",LZ最后这句话是原题中的,还是自己加的? : 这道题至少要想面试官明确: : - 是否有循环?比如:A包含值B,B包含值A。 : - 是否有Map是多个其他Map的值。比如:A包含值C,B也包含值C。
|
w***y 发帖数: 6251 | 9 ok 这个是不是更general的solution? 就是做成一个iterator的样子,可以支持
hasNext() getNext()
如果只是要遍历,是不是可以写成recursive就行了? 遇到map就继续NestedIterator?
【在 s*****r 的大作中提到】 : code就不写了,大概思路:每次getNext(),用当前Iterator的getNext(),如果是 : Element,就返回,如果是Map,就建一个Iterator,push当前的Iterator到stack,用 : 新的Iterator的getNext(),这里可能有循环。如果getNext()返回为空,放弃当前 : Iterator,Pop Stack上面的,用Pop的Iterator的getNext().
|