235
236 /**
237 * Constructs a new, empty {@code WeakHashMap} with the default initial
238 * capacity (16) and load factor (0.75).
239 */
240 public WeakHashMap() {
241 this(DEFAULT_INITIAL_CAPACITY, DEFAULT_LOAD_FACTOR);
242 }
243
244 /**
245 * Constructs a new {@code WeakHashMap} with the same mappings as the
246 * specified map. The {@code WeakHashMap} is created with the default
247 * load factor (0.75) and an initial capacity sufficient to hold the
248 * mappings in the specified map.
249 *
250 * @param m the map whose mappings are to be placed in this map
251 * @throws NullPointerException if the specified map is null
252 * @since 1.3
253 */
254 public WeakHashMap(Map<? extends K, ? extends V> m) {
255 this(Math.max((int) (m.size() / DEFAULT_LOAD_FACTOR) + 1,
256 DEFAULT_INITIAL_CAPACITY),
257 DEFAULT_LOAD_FACTOR);
258 putAll(m);
259 }
260
261 // internal utilities
262
263 /**
264 * Value representing null keys inside tables.
265 */
266 private static final Object NULL_KEY = new Object();
267
268 /**
269 * Use NULL_KEY for key if it is null.
270 */
271 private static Object maskNull(Object key) {
272 return (key == null) ? NULL_KEY : key;
273 }
274
275 /**
|
235
236 /**
237 * Constructs a new, empty {@code WeakHashMap} with the default initial
238 * capacity (16) and load factor (0.75).
239 */
240 public WeakHashMap() {
241 this(DEFAULT_INITIAL_CAPACITY, DEFAULT_LOAD_FACTOR);
242 }
243
244 /**
245 * Constructs a new {@code WeakHashMap} with the same mappings as the
246 * specified map. The {@code WeakHashMap} is created with the default
247 * load factor (0.75) and an initial capacity sufficient to hold the
248 * mappings in the specified map.
249 *
250 * @param m the map whose mappings are to be placed in this map
251 * @throws NullPointerException if the specified map is null
252 * @since 1.3
253 */
254 public WeakHashMap(Map<? extends K, ? extends V> m) {
255 this(Math.max((int) (m.size() / DEFAULT_LOAD_FACTOR + 1),
256 DEFAULT_INITIAL_CAPACITY),
257 DEFAULT_LOAD_FACTOR);
258 putAll(m);
259 }
260
261 // internal utilities
262
263 /**
264 * Value representing null keys inside tables.
265 */
266 private static final Object NULL_KEY = new Object();
267
268 /**
269 * Use NULL_KEY for key if it is null.
270 */
271 private static Object maskNull(Object key) {
272 return (key == null) ? NULL_KEY : key;
273 }
274
275 /**
|