下面列出了com.google.common.collect.Sets#newSetFromMap ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public synchronized void initPipeline(ServletContext servletContext)
throws ServletException {
//double-checked lock, prevents duplicate initialization
if (initialized)
return;
// Used to prevent duplicate initialization.
Set<Filter> initializedSoFar = Sets.newSetFromMap(Maps.<Filter, Boolean>newIdentityHashMap());
for (FilterDefinition filterDefinition : filterDefinitions) {
filterDefinition.init(servletContext, objectGraph, initializedSoFar);
}
//next, initialize servlets...
servletPipeline.init(servletContext, objectGraph);
//everything was ok...
initialized = true;
}
@Override
public void destroyPipeline() {
//destroy servlets first
servletPipeline.destroy();
//go down chain and destroy all our filters
Set<Filter> destroyedSoFar = Sets.newSetFromMap(Maps.<Filter, Boolean>newIdentityHashMap());
for (FilterDefinition filterDefinition : filterDefinitions) {
filterDefinition.destroy(destroyedSoFar);
}
}
public void init(ServletContext servletContext, ObjectGraph objectGraph) throws ServletException {
Set<HttpServlet> initializedSoFar
= Sets.newSetFromMap(Maps.<HttpServlet, Boolean>newIdentityHashMap());
for (ServletDefinition servletDefinition : servletDefinitions) {
servletDefinition.init(servletContext, objectGraph, initializedSoFar);
}
}
public void destroy() {
Set<HttpServlet> destroyedSoFar
= Sets.newSetFromMap(Maps.<HttpServlet, Boolean>newIdentityHashMap());
for (ServletDefinition servletDefinition : servletDefinitions) {
servletDefinition.destroy(destroyedSoFar);
}
}
private <T> Set<T> createRelativeSet() {
ConcurrentMap<T, Boolean> map = new MapMaker().weakKeys().makeMap();
return Sets.newSetFromMap(map);
}
public static <V> Set<V> newConcurrentSet() {
return Sets.newSetFromMap(ConcurrentCollections.<V, Boolean>newConcurrentMap());
}
public TypeSystemSmokeTester() throws NoSuchAlgorithmException {
messageDigest = MessageDigest.getInstance("MD5");
seen = Sets.newSetFromMap(new ConcurrentHashMap<BigInteger, Boolean>());
}
public DoSFilter() {
numRecentAccesses = Maps.newConcurrentMap();
bannedIPAddresses = Sets.newSetFromMap(Maps.<String,Boolean>newConcurrentMap());
}
/**
* Creates a thread-safe set backed by a hash map. The set is backed by a
* {@link ConcurrentHashMap} instance, and thus carries the same concurrency
* guarantees.
*
* <p>Unlike {@code HashSet}, this class does NOT allow {@code null} to be
* used as an element. The set is serializable.
*
* @return a new, empty thread-safe {@code Set}
* @since 15.0
*/
public static <E> Set<E> newConcurrentHashSet() {
return Sets.newSetFromMap(new ConcurrentHashMap<E, Boolean>());
}
/**
* Creates a thread-safe set backed by a hash map. The set is backed by a
* {@link ConcurrentHashMap} instance, and thus carries the same concurrency
* guarantees.
*
* <p>Unlike {@code HashSet}, this class does NOT allow {@code null} to be
* used as an element. The set is serializable.
*
* @return a new, empty thread-safe {@code Set}
* @since 15.0
*/
public static <E> Set<E> newConcurrentHashSet() {
return Sets.newSetFromMap(new ConcurrentHashMap<E, Boolean>());
}