【发布时间】:2015-07-20 19:35:52
【问题描述】:
在一次采访中,它被要求在两个字符串数组之间找到不常见的元素。
Eg: String a[]={"a","b","c","d"};
String b[]={"b","c"};
O/p should be a,d
我已经回答了 Java Set 是使用 HashTable 实现的问题。使用 Set 的代码要简单得多:
String[] a = {"a","b","c","d"};
String[] b = {"b", "c"};
Set<String> set = new HashSet<>(a.length);
for(String s : a){
set.add(s);
}
for(String s : b){
set.remove(s);
}
return set;
现在我的问题是有没有其他更好的方法来实现这一点
【问题讨论】:
-
使用这种方法你会错过只存在于
b中的字符串,对吧? -
看起来输入是排序的……这是偶然的,还是有保证的?
-
@aioobe 碰巧如果字符串没有排序,请告知方法../
-
@aioobe 好吧,是的,这是偶然的,如果字符串没有排序,请告知该怎么办
-
@aioobe 是的,非常多只包含 a 中的元素,但请告知如果数组未排序,那么在这种情况下我应该怎么做
标签: java collections set