编写方法searchInsect,返回值为交集的集合,其参数为两个字符串集合s1和s2。
方法解释:首先将s1放入map集合中;遍历s2,如果s2中的在map中包含,则值设置为true;最后将map中所有值为true的间保存在list中返回。
这里要注意返回的是数组,所以需要将list集合转换为数组:使用toArray方法,参数为数组类型即可。
代码:
package mianshi_test_01;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
class Test {
public static void main(String[] args) {
String[] s1 = { "asz", "1q2", "ccc", "ffr" };
String[] s2 = { "1q2", "ccc", "pod" };
String[] result = searchInsect(s1, s2);
for (String s : result) {
System.out.println(s);
}
}
private static String[] searchInsect(String[] s1, String[] s2) {
// TODO Auto-generated method stub
// 将s1放到map集合中
Map<String, Boolean> map = new HashMap<String, Boolean>();
for (String s : s1) {
if (!map.containsKey(s))
map.put(s, Boolean.FALSE);
}
// 判断s2中的是否在map中,若在就将值设置为false
for (String s : s2) {
if (map.containsKey(s))
map.put(s, Boolean.TRUE);
}
// 将所有值为true的即交集放在list中作为返回值
List<String> list = new LinkedList<String>();
for (Map.Entry<String, Boolean> entry : map.entrySet()) {
if (entry.getValue().equals(Boolean.TRUE)) {
list.add(entry.getKey());
}
}
String[] r = {};
return list.toArray(r);
}
}
结果: