锁定老帖子 主题:淘宝的笔试题,大家讨论一下
精华帖 (0) :: 良好帖 (1) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-06-30
如果这些题目大概可以描述对答案,可以给出解决方案,但写代码有点问题的话,应该算什么样的呢? 能拿到多少薪水呢?
|
|
返回顶楼 | |
发表时间:2009-07-01
gugugu 写道 1. hashCode()方法好像是用来给compareTo用的,equals是比较compareTo也是比较,所以2个地方要一致了。要改一起改,免得使用者用错了。
2. 看来去淘宝真要认真复习一遍数据结构啊,忘得差不多了。 3. 这个应该就是传说中的map-reduce吧,把List分成2半,2半分成4半,直到分到合理的数(好比每份10万个),然后算,在和到一起。 4. 什么意思?一个类可以拥有返回float和double类型的方法?这样就是True呗。 不敢恭维~~ |
|
返回顶楼 | |
发表时间:2009-11-26
看了大家这么回复,始终没有看见第3题的答案,于是自己写了一个,忘大侠来指点迷津。
利用多核CPU当然是要想到多线程处理了。 import java.util.ArrayList; import java.util.List; public class Count implements Runnable { private List<Integer> list; private static int sum; public static ThreadGroup group = new ThreadGroup("线程组");//这是关键的地方,让所有启动的线程在同一个线程组中 public Count(List<Integer> list) { this.list = list; } public static int getSum() { while (group.activeCount() != 0) { //等到线程组中所有线程都运算完毕再返回结果 } return sum; } public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(1); list.add(-12); //模拟数据 //这里就不写怎么将一个大的list分成几个小的list了 //启动线程的数量又 list.size()/N 决定,N由自己决定 //这里只启动了4个线程 new Thread(Count.group, new Count(list)).start(); new Thread(Count.group, new Count(list)).start(); new Thread(Count.group, new Count(list)).start(); new Thread(Count.group, new Count(list)).start(); System.out.println(Count.getSum()); } @Override public void run() { for (int i = 0; i < list.size(); i++) { sum = sum + list.get(i).intValue(); } } } 其他的几个题,多看看书,基本都能理解了。 望大家指正。 |
|
返回顶楼 | |
发表时间:2009-12-05
这面试有难度
|
|
返回顶楼 | |
发表时间:2009-12-26
都不太懂,太底了点吧
|
|
返回顶楼 | |
发表时间:2009-12-27
最后修改:2009-12-27
1、见effective java. 2、数据结构。 3、google的map-reduce。 4、查帮助文档。 |
|
返回顶楼 | |