Java方面的面试题,请教大家回答一下。

昨天面试有一道题笔试题是这样的:有两个一千万的String字符串数组,如何用最好的方式找出他们之间的交集。
我回答说一个个用循环比较,我也知道这不是最佳的方式,但是我想不到别的方式了,请大家帮忙教我一下如何解决这个问题。

第1个回答  2010-04-15
用个map,key为字符串,value为出现次数,
分别循环两个字符串数组,放入map中,如果有了就value+1,没有就放进去,value=1,
最后遍历map,value>1的就是交集。
第2个回答  2010-04-15
两个 String字符串数组 a1,a2
List<String> list = new ArrayList(Arrays.asList(a1)); list.retainAll(Arrays.asList(a2)); // list 中的就是交集了本回答被提问者采纳
第3个回答  2010-04-15
最好的方法是list.retainAll(Collection) 方法 不过这个方法的内部源码 也是用循环实现的 所以 从代码长度上看用这个是短些 但实质还是一样的
第4个回答  2010-04-15
list的retainAll()方法

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网