使用List、Set等求交集和并集

1.    //求两个字符串数组的并集,利用set的元素唯一性  

2.       public static String[] union(String[] arr1, String[] arr2) {  

3.           Set<String> set = new HashSet<String>();  

4.           for (String str : arr1) {  

5.               set.add(str);  

6.           }  

7.           for (String str : arr2) {  

8.               set.add(str);  

9.           }  

10.          String[] result = {};  

11.          return set.toArray(result);  

12.      }  

13.    

14.      //求两个数组的交集  

15.      public static String[] intersect(String[] arr1, String[] arr2) {  

16.          Map<String, Boolean> map = new HashMap<String, Boolean>();  

17.          LinkedList<String> list = new LinkedList<String>();  

18.          for (String str : arr1) {  

19.              if (!map.containsKey(str)) {  

20.                  map.put(str, Boolean.FALSE);  

21.              }  

22.          }  

23.          for (String str : arr2) {  

24.              if (map.containsKey(str)) {  

25.                  map.put(str, Boolean.TRUE);  

26.              }  

27.          }  

28.    

29.          for (Entry<String, Boolean> e : map.entrySet()) {  

30.              if (e.getValue().equals(Boolean.TRUE)) {  

31.                  list.add(e.getKey());  

32.              }  

33.          }  

34.    

35.          String[] result = {};  

36.          return list.toArray(result);  

37.      }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值