webmagic在输出的时候顺序为什么和putfield的顺序不一样

donglin_li 发布于 2014/03/24 21:09
阅读 604
收藏 0

@黄亿华 你好,想跟你请教个问题:webmagic在输出的时候顺序为什么和putfield的顺序不一样,比如我依次压入title,name,lon,lat四个值,但是consolepipeline输出的时候却是lon title lat name....这看不懂啊。。,我看源码,也没有排序的啊,怎么就这么输出了呢?

加载中
0
黄亿华
黄亿华

因为ResultItems使用的是HashMap保存结果,HashMap的遍历确实是无序的。我把它改成LinkedHashMap吧,不过这样也只能保证在单机是有序的。

建议是实现Pipeline,手动遍历key读取对应值!

d
donglin_li
回复 @黄亿华 : 明白了
黄亿华
黄亿华
回复 @donglin_li : 只能手动指定key,代码大概这样子: String[] keys = new String[]{"title","name","lon","lat"}; for (String key:keys){ results.get(key); }
d
donglin_li
谢谢,意思就是说自己另外写个for循环遍历下,不用他内置的遍历。
返回顶部
顶部