锁定老帖子 主题:一道8K的面试题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (18)
|
|
---|---|
作者 | 正文 |
发表时间:2011-09-09
太简单的题了
|
|
返回顶楼 | |
发表时间:2011-09-10
H_eaven 写道 牛人分两种:
一种是把复杂的问题简单化, 另一种是把简单的问题复杂化。 两者皆牛人 在内部开发中,复杂问题简单化,以降低开发成本,这种是技术牛人。 在对外交流中,简单问题复杂化,以取得某种利益,这种是外交牛人。 |
|
返回顶楼 | |
发表时间:2011-09-10
晕。看的头疼!
|
|
返回顶楼 | |
发表时间:2011-09-12
这个,我也没看懂……
|
|
返回顶楼 | |
发表时间:2011-09-12
woaiwofengkuang 写道 bao231 写道 helloxyz123 写道 这个面试题目大概意思我用大白话描述一下:
List<String> list = new ArrayList<String>(); //作为测试,只存放了几条数据 list.add("###20110810$$$hello3434334343443hhh20110810"); list.add("###20110810$$$world3434334343443hhh20110810"); list.add("###20110811$$$hello3434334343443hhh20110811"); list.add("###20110811$$$world3434334343443hhh20110811"); list.add("###20110812$$$hello3434334343443hhh20110812"); list.add("###20110812$$$world3434334343443hhh20110812"); list.add("###20110813$$$hello3434334343443hhh20110813"); list.add("###20110813$$$world3434334343443hhh20110813"); list.add("###20110814$$$hello3434334343443hhh20110814"); list.add("###20110814$$$world3434334343443hhh20110814"); list.add("###20110815$$$hello3434334343443hhh20110815"); list.add("###20110815$$$world3434334343443hhh20110815"); Set<String> set = new LinkedHashSet<String>(); //代表要根据set集合分组,我也只是写了几条数据 set.add("20110810"); set.add("20110811"); set.add("20110812"); set.add("20110813"); set.add("20110814"); set.add("20110815"); 最后要封装的结果为: /** * 把每天的数据封装到map中,用对应的天做KEY,按set的值分组和排序,比如 * List<String> dayList = new ArrayList<String>(); * dayList.add("hello3434334343443hhh20110810") * dayList.add("world3434334343443hhh20110810") * map.put("20110810",dayList); *等等其他天加入进去 * map.put("20110811",dayxList); */ 要求:排序要安装set中数据来排序,最后map中得KEY的书序也要保证安装set来,哈哈,大家看看怎么样,看着很简单,其实还是不那么简单的哦? 我提点建议哦,你这个程序写的真的不敢苟同啊, 建议从以下几个方面着手哦, 1.能不用嵌套循环的就不要嵌套循环。 2.能减少循环次数的就减少次数。 你这个程序明显只需要一个循环就可以把这些搞定的,你为什么高了这么多循环,哎。 同意,第二个set多次一举。 一个循环一个map就够了,多整个set浪费了. |
|
返回顶楼 | |
发表时间:2011-09-15
import java.util.*; public class TestCreateMap { public static void main(String[] args) { List<String> myList = myList(); Set<String> mySet = mySet(); List<String> d1 = new ArrayList<String>(); Map<String, List<String>> myMap = new LinkedHashMap<String, List<String>>(); Iterator i = mySet.iterator(); while (i.hasNext()) { String key = (String)i.next(); for (String value : myList) { String[] str = value.split("\\$\\$\\$"); if (str[0].contains(key)) { d1.add(str[1]); } } System.out.println(d1); myMap.put(key, d1); d1.clear(); } System.out.println(myMap); } public static List myList() { List<String> list = new ArrayList<String>(); list.add("###20110810$$$hello3434334343443hhh20110810"); list.add("###20110810$$$world3434334343443hhh20110810"); list.add("###20110811$$$hello3434334343443hhh20110811"); list.add("###20110811$$$world3434334343443hhh20110811"); list.add("###20110812$$$hello3434334343443hhh20110812"); list.add("###20110812$$$world3434334343443hhh20110812"); list.add("###20110813$$$hello3434334343443hhh20110813"); list.add("###20110813$$$world3434334343443hhh20110813"); list.add("###20110814$$$hello3434334343443hhh20110814"); list.add("###20110814$$$world3434334343443hhh20110814"); list.add("###20110815$$$hello3434334343443hhh20110815"); list.add("###20110815$$$world3434334343443hhh20110815"); return list; } public static Set mySet() { Set<String> set = new LinkedHashSet<String>(); set.add("20110810"); set.add("20110811"); set.add("20110812"); set.add("20110813"); set.add("20110814"); set.add("20110815"); return set; } } 修改几楼的朋友的其中一段代码,有个疑问打印 d1 是有值的,为什么打印 myMap 值为空,键正常
|
|
返回顶楼 | |
发表时间:2011-09-15
新人刚学,不理解是哪里问题 呵呵
如不加d1.clear();方法,myMap的值从hello.....20110812 - world.....20110815全部数据 |
|
返回顶楼 | |