其实有点投机取巧了。
使用了spring的内核方法而已。
方法全路径
org.springframework.util.CollectionUtils(Collection<?> source, Collection<?> candidates)
其实源码里也就是两个数组循环对比。
public static boolean containsAny(Collection<?> source, Collection<?> candidates) { if (isEmpty(source) || isEmpty(candidates)) { return false; } for (Object candidate : candidates) { if (source.contains(candidate)) { return true; } } return false; }
外面具体的用法就是:
public static void main(String[] args) { List<Long> a =new ArrayList<>(); a.add(100L); a.add(200L); List<Long> b =new ArrayList<>(); b.add(100L); b.add(200L); List<String> c =new ArrayList<>(); c.add("100"); c.add("200"); System.out.println(CollectionUtils.containsAny(a, b)); System.out.println(CollectionUtils.containsAny(a, c)); }
分别返回的:
true false