黑马程序员技术交流社区

标题: String类和双列集合不排序不去重综合 点招题,目的:难死你 [打印本页]

作者: wolfking0608    时间: 2016-10-8 19:12
标题: String类和双列集合不排序不去重综合 点招题,目的:难死你
/*(黑马点招面试题:有类似这样的字符串:"1.2,3.4,5.6,7.8,5.56,44.55"请按照要求,依次完成以下试题。
(1)以逗号作为分隔符,把已知的字符串分成一个String类型的数组,数组中的每一个元素
       类似于"1.2","3.4"这样的字符串
(2)把数组中的每一个元素以"."作为分隔符,把"."左边的元素作为key,右边的元素作为value,
       封装到Map中,Map中的key和value都是Object类型。
(3)把map中的key封装的Set中,并把Set中的元素输出。
(4)把map中的value封装到Collection中,把Collection中的元素输出
* */
最后的结果,必须是(必须在前三部分的基础上实现,并且不能小数点前前面的集合用ArrayList,后面的再用List),从双列集合中取出来的时候,就应该是这个顺序!!!!!!!!
1 3 5  7 5 44
2 4 6  8 56 55      看清楚他们的顺序,是没有排序的,  考点,怎样让TreeMap自然排序并且不去重,或者用LinkedHashMap 自然顺序.但是让他的底层不去重. 你们如何实现 面试时间25-30分钟,自己读秒表,时间超过下一期
作者: langyabang1110    时间: 2016-10-8 22:47
等下做做看      
作者: huangweicong    时间: 2016-10-9 00:18
谢谢!!!!!!!!!!!!!!!!!
作者: 游客666    时间: 2017-1-15 20:10
public class Demo1_Test {
        public static void main(String[] args) throws IOException {
                String s = "1.2,3.4,5.6,7.8,5.56,44.55";
                String ss[] = s.split(",");
                Map m = new HashMap();
                for (String string : ss) {
                        int index = string.indexOf(".");
                        m.put(string.substring(0, index), string.substring(index+1));
                }
                System.out.println("Map集合中元素:"+m);
                Set set = new HashSet();
                Collection coll = new ArrayList() ;
                for (Object object : m.keySet()) {
                        set.add(object);
                        coll.add(m.get(object));
                }
                System.out.println("Set集合中元素:"+set);
                System.out.println("Collection集合中元素:"+coll);
        }
}
作者: guyouzhong    时间: 2017-1-19 23:20
这个,还是要打好基础,慢慢做
作者: zhoubinjian    时间: 2017-1-21 17:12
难是因为你还不熟集合运用,凡事开头难,多练,祝你早日学成

作者: Dani3l    时间: 2017-1-24 15:16
        public static void main(String[] args) {
               
                String baseStr = "1.2,3.4,5.6,7.8,5.56,44.55";
                String arr1[] = baseStr.split(",");
                Map<Object, Object> map = new LinkedHashMap<Object, Object>();
                for(int index = 0;index<arr1.length;index++){
                        if(!map.containsKey(arr1[index].split("\\.")[0]))
                                map.put(arr1[index].split("\\.")[0], arr1[index].split("\\.")[1]);
                        else
                                map.put(new Integer(arr1[index].split("\\.")[0]), arr1[index].split("\\.")[1]);
                }
                Set<Object> set = map.keySet();
                Collection<Object> collection = new LinkedList<Object>();
                collection.addAll(map.values());
               
               
                for(Object tmp :set){
                        System.out.print(tmp.toString()+" ");
                }
                System.out.println();
                for(Object tmp:collection){
                        System.out.print(tmp.toString()+" ");
                }
        }
作者: 袁志娜    时间: 2017-1-25 20:19

作者: Mbs2016    时间: 2017-1-29 00:18
路过看看

作者: 愤怒的大飞机    时间: 2017-1-31 10:40
//其实挺简单的,不过我还是忘记了values 和spilt分割小数点需要转义字符\\,谢谢
[AppleScript] 纯文本查看 复制代码
public static void main(String[] args) {
                String string = "1.2,3.4,5.6,7.8,5.56,44.55";
                String [] num = string.split(",");
                Map<Object , Object> map = new LinkedHashMap<>();
                for (int i = 0; i < num.length; i++) {
                        String [] arr = num.split("\\.");
                        map.put(arr[0], arr[1]);
                }
                Set <Object> set = map.keySet();
                for (Object object : set) {
                        System.out.println(object);
                }
                Collection<Object> collection = map.values();
                for (Object object : collection) {
                        System.out.println(object);
                }
        }
}






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2