- /**
- *有两个字符串数组a和b,寻找相同元素(a和b都比较大),求效率最高的解答
- *
- *@authorAdministrator2010-5-29
- */
- //第一种方法:基本思路:相同=集合2-(集合2-集合1中相同的)
- publicstaticvoidgetSameElementByList(String[]strArr1,String[]strArr2){
- Longbegin=System.currentTimeMillis();
- List<String>list1=newArrayList<String>(Arrays.asList(strArr1));
- List<String>list02=newArrayList<String>(Arrays.asList(strArr2));
- List<String>list12=newArrayList<String>(Arrays.asList(strArr2));
- list02.removeAll(list1);
- Iterator<String>it=list02.iterator();
- while(it.hasNext()){
- System.out.println(it.next());
- }
- System.out.println("-------华丽的分割线-----------");
- list12.removeAll(list02);
- Iterator<String>it2=list12.iterator();
- while(it2.hasNext()){
- System.out.println(it2.next());
- }
- Longend=System.currentTimeMillis();
- System.out.println("此方法运行共使用时间"+(end-begin)+"ms");
- }
- //第二种方法:把数组A的数据作为map的key,和value,然后用B的数据取值,不为NULL,说明相同
- publicstaticvoidgetSameElementByMap(String[]strArr1,String[]strArr2){
- Longbegin=System.currentTimeMillis();
- Map<String,Object>map=newHashMap<String,Object>();
- for(Stringstr:strArr1){
- map.put(str,str);
- }
- for(Stringstr2:strArr2){
- Objectobj=map.get(str2);
- if(obj!=null){
- System.out.println(obj.toString());
- }
- }
- Longend=System.currentTimeMillis();
- System.out.println("此方法运行共使用时间"+(end-begin)+"ms");
- }

被折叠的 条评论
为什么被折叠?



