这是单线的:
compareList.retainAll(new HashSet<String>(baseList));
该
retainAllIMPL(类AbstractCollection中)遍历
this,以及用途
contains()的说法。将参数转换为a
HashSet将导致快速查找,因此a中的循环
retainAll将尽快执行。
另外,名称
baseList暗示它是一个常量,因此,如果缓存以下内容,将会获得显着的性能改进:
static final Set<String> base = Collections.unmodifiableSet(new HashSet<String>(Arrays.asList("one", "two", "three", "etc")));static void retainCommonWithbase(Collection<String> strings) { strings.retainAll(base);}
如果要保留原始列表,请执行以下 *** 作:
static List<String> retainCommonWithbase(List<String> strings) { List<String> result = new ArrayList<String>(strings); result.retainAll(base); return result;}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)