面试考到的问题

来源:互联网 发布:python书籍推荐 知乎 编辑:程序博客网 时间:2024/04/29 01:26
Code:
  1. /**  
  2.  * 有两个字符串数组a和b,寻找相同元素 (a和b都比较大),求效率最高的解答  
  3.  *   
  4.  * @author Administrator 2010-5-29  
  5.  */  
  6. // 第一种方法:基本思路:相同 = 集合2-(集合2-集合1中相同的)   
  7.     public static void getSameElementByList(String[] strArr1, String[] strArr2) {   
  8.         Long begin = System.currentTimeMillis();   
  9.         List<String> list1 = new ArrayList<String>(Arrays.asList(strArr1));   
  10.         List<String> list02 = new ArrayList<String>(Arrays.asList(strArr2));   
  11.         List<String> list12 = new ArrayList<String>(Arrays.asList(strArr2));   
  12.   
  13.         list02.removeAll(list1);   
  14.   
  15.         Iterator<String> it = list02.iterator();   
  16.         while (it.hasNext()) {   
  17.             System.out.println(it.next());   
  18.         }   
  19.         System.out.println("-------华丽的分割线-----------");   
  20.   
  21.         list12.removeAll(list02);   
  22.         Iterator<String> it2 = list12.iterator();   
  23.         while (it2.hasNext()) {   
  24.             System.out.println(it2.next());   
  25.         }   
  26.         Long end = System.currentTimeMillis();   
  27.         System.out.println("此方法运行共使用时间" + (end - begin) + "ms");   
  28.     }   
  29.   
  30.     // 第二种方法:把数组A的数据作为map的key,和value,然后用B的数据取值,不为NULL,说明相同   
  31.     public static void getSameElementByMap(String[] strArr1, String[] strArr2) {   
  32.         Long begin = System.currentTimeMillis();   
  33.         Map<String, Object> map = new HashMap<String, Object>();   
  34.         for (String str : strArr1) {   
  35.             map.put(str, str);   
  36.         }   
  37.         for (String str2 : strArr2) {   
  38.   
  39.             Object obj = map.get(str2);   
  40.             if (obj != null) {   
  41.                 System.out.println(obj.toString());   
  42.             }   
  43.         }   
  44.         Long end = System.currentTimeMillis();   
  45.         System.out.println("此方法运行共使用时间" + (end - begin) + "ms");   
  46.     }  

 

 

原创粉丝点击