几个Java面试题 (转载)# JobHunting - 待字闺中
J*n
1 楼
【 以下文字转载自 Java 讨论区 】
发信人: JAlan (Alan), 信区: Java
标 题: 几个Java面试题
发信站: BBS 未名空间站 (Tue Sep 27 23:34:20 2011, 美东)
1. 如果数据查找多的话,需要使用哪种数据结构?
// 我复习下来,一直认为插入修改多用LinkedList,查询多的话用ArrayList. 但是好
像都不是正解。ArrayList如果查找value的话,也需要遍历整个列表。后来想了想,查
找最快的话就是binarySearch了,但是要基于sorted list的基础上,那是不是应该使
用SortedLinkedList呢?
2. 1 million的数据 (key-value),多查找,需要使用哪种数据结构?
// TreeMap 吗?
3. 使用线程实现1 billion 整数的求和,最后返回一个数
// 我把数据分成10份,定义10个线程来分别来做求和,最后把每个线程所得数相加,
得到最后的数。不知道思路对不对?
不过我困惑的是,如果是单一任务的话,难道不是单线程要比多线程快吗?可以一口气
运行,为什么还要浪费切换的时间呢?这道题的用意是什么呢?
谢谢。
发信人: JAlan (Alan), 信区: Java
标 题: 几个Java面试题
发信站: BBS 未名空间站 (Tue Sep 27 23:34:20 2011, 美东)
1. 如果数据查找多的话,需要使用哪种数据结构?
// 我复习下来,一直认为插入修改多用LinkedList,查询多的话用ArrayList. 但是好
像都不是正解。ArrayList如果查找value的话,也需要遍历整个列表。后来想了想,查
找最快的话就是binarySearch了,但是要基于sorted list的基础上,那是不是应该使
用SortedLinkedList呢?
2. 1 million的数据 (key-value),多查找,需要使用哪种数据结构?
// TreeMap 吗?
3. 使用线程实现1 billion 整数的求和,最后返回一个数
// 我把数据分成10份,定义10个线程来分别来做求和,最后把每个线程所得数相加,
得到最后的数。不知道思路对不对?
不过我困惑的是,如果是单一任务的话,难道不是单线程要比多线程快吗?可以一口气
运行,为什么还要浪费切换的时间呢?这道题的用意是什么呢?
谢谢。