论坛首页 Java企业应用论坛

一道8K的面试题

浏览 24337 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (18)
作者 正文
   发表时间:2011-09-07  
这个面试题目大概意思我用大白话描述一下:

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来,哈哈,大家看看怎么样,看着很简单,其实还是不那么简单的哦?
   发表时间:2011-09-07   最后修改:2011-09-07
呵呵,其实很简单哦

public static void main(String[] args) {

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.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);
*/
Map<String, List<String>> map = new LinkedHashMap<String, List<String>>();

int i = 0;

for (String str : set) {
List<String> dayList = new ArrayList<String>();
for (; i < list.size();i++) {
if (str.equals(StringUtils.substringBetween(list.get(i), "###",
"$$$"))) {
dayList.add(StringUtils.substringAfter(list.get(i), "$$$"));
} else {
break;
}
map.put(str, dayList);
}
}

for (String key : map.keySet()) {
System.out.println(key);
for (String str : map.get(key)) {
System.out.println("-------- : " + str);
}
System.out.println();

}

}
0 请登录后投票
   发表时间:2011-09-08  
你这错字比那题读起来都难
0 请登录后投票
   发表时间:2011-09-08  
恕我太愚钝 看2遍 没明白说什么。
0 请登录后投票
   发表时间:2011-09-08  
原来看不懂题目的不是只有我一个人,安慰。。
0 请登录后投票
   发表时间:2011-09-08  
我也没懂,悲催
0 请登录后投票
   发表时间:2011-09-08  
没看明白什么意思
0 请登录后投票
   发表时间:2011-09-08  
自娱自乐呢?
0 请登录后投票
   发表时间:2011-09-08  
lz的错字的确很悲催,但我还是明白了,lz 的意思是把 list 中的元素按照和下面的set 中的排列在排一下。
其实也没有什么
0 请登录后投票
   发表时间:2011-09-08  
我大胆的揣测一下:安装==按照;书序==顺序!!最后想要达到的目的是得到map,map的key是:时间,value是:诸如此类的字符串“##20110811$$$hello3434334343443hhh20110811”。直接分析字符串不就得了。先从set中得到key,然后根据key去arraylist中找相关内容!!
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics