给定两个字符串数组,求出二者不同的元素

题目描述:给定s = {"a","b","c","d","f","e","ab"}; s2 = {"a","ab"}; 求出s中不包含s2中的剩余元素。可以认为是 s-s2的结果。

思路: 利用hashmap,将s中的元素都存入hashmap,并将<K,V>中的value值赋值1,然后遍历s2中的元素,如果s1中存在则value+1,最后找出value为1的元素就是所求元素。

 1 import java.util.*;
 2 import java.util.Map.Entry;
 3 public class StringMinute {
 4     public static void main(String[] args){
 5         String[] s = {"a","b","c","d","f","e","ab"};
 6         String[] s2 = {"a","ab"};
 7         
 8         Map<String, Integer> map = new HashMap<>();
 9         for (int i=0; i<s.length; i++){
10             map.put(s[i], 1);
11         }
12         for (int i=0; i<s2.length; i++){
13             if (map.containsKey(s2[i])){
14                 int count = map.get(s2[i]);
15                 count++;
16                 map.put(s2[i], count);
17             }
18         }
19         Iterator iter = map.entrySet().iterator();
20         while (iter.hasNext()){
21             Map.Entry<String, Integer> entry = (Entry<String, Integer>)iter.next();
22             if (entry.getValue() == 1){
23                 System.out.println(entry.getKey());
24             } 
25         }
26     }
27 }

 

posted @ 2017-10-29 11:40  四季万花筒  阅读(439)  评论(0编辑  收藏  举报