|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.util.Collections.UnmodifiableCollection java.util.Collections.UnmodifiableSet java.util.Collections.UnmodifiableMap.UnmodifiableEntrySet
We need this class in addition to UnmodifiableSet as Map.Entries themselves permit modification of the backing Map via their setValue operation. This class is subtle: there are many possible attacks that must be thwarted.
Nested Class Summary | |
private static class |
Collections.UnmodifiableMap.UnmodifiableEntrySet.UnmodifiableEntry
This "wrapper class" serves two purposes: it prevents the client from modifying the backing Map, by short-circuiting the setValue method, and it protects the backing Map against an ill-behaved Map.Entry that attempts to modify another Map Entry when asked to perform an equality check. |
Field Summary | |
(package private) Collection |
c
|
Constructor Summary | |
(package private) |
Collections.UnmodifiableMap.UnmodifiableEntrySet(Set s)
|
Method Summary | |
boolean |
add(Object o)
Adds the specified element to this set if it is not already present (optional operation). |
boolean |
addAll(Collection coll)
Adds all of the elements in the specified collection to this set if they're not already present (optional operation). |
void |
clear()
Removes all of the elements from this set (optional operation). |
boolean |
contains(Object o)
This method is overridden to protect the backing set against an object with a nefarious equals function that senses that the equality-candidate is Map.Entry and calls its setValue method. |
boolean |
containsAll(Collection coll)
The next two methods are overridden to protect against an unscrupulous List whose contains(Object o) method senses when o is a Map.Entry, and calls o.setValue. |
boolean |
equals(Object o)
Compares the specified object with this set for equality. |
int |
hashCode()
Returns the hash code value for this set. |
boolean |
isEmpty()
Returns true if this set contains no elements. |
Iterator |
iterator()
Returns an iterator over the elements in this set. |
boolean |
remove(Object o)
Removes the specified element from this set if it is present (optional operation). |
boolean |
removeAll(Collection coll)
Removes from this set all of its elements that are contained in the specified collection (optional operation). |
boolean |
retainAll(Collection coll)
Retains only the elements in this set that are contained in the specified collection (optional operation). |
int |
size()
Returns the number of elements in this set (its cardinality). |
Object[] |
toArray()
Returns an array containing all of the elements in this set. |
Object[] |
toArray(Object[] a)
Returns an array containing all of the elements in this set; the runtime type of the returned array is that of the specified array. |
String |
toString()
Returns a string representation of the object. |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Methods inherited from interface java.util.Set |
add, addAll, clear, isEmpty, remove, removeAll, retainAll, size |
Field Detail |
Collection c
Constructor Detail |
Collections.UnmodifiableMap.UnmodifiableEntrySet(Set s)
Method Detail |
public Iterator iterator()
Set
iterator
in interface Set
iterator
in class Collections.UnmodifiableCollection
public Object[] toArray()
Set
toArray
in interface Set
toArray
in class Collections.UnmodifiableCollection
public Object[] toArray(Object[] a)
Set
toArray
in interface Set
toArray
in class Collections.UnmodifiableCollection
public boolean contains(Object o)
contains
in interface Set
contains
in class Collections.UnmodifiableCollection
public boolean containsAll(Collection coll)
containsAll
in interface Set
containsAll
in class Collections.UnmodifiableCollection
public boolean equals(Object o)
Set
equals
in interface Set
equals
in class Collections.UnmodifiableSet
public int hashCode()
Set
s1.equals(s2)
implies that
s1.hashCode()==s2.hashCode()
for any two sets
s1
and s2
, as required by the general
contract of the Object.hashCode method.
hashCode
in interface Set
hashCode
in class Object
Object.equals(java.lang.Object)
,
Hashtable
public int size()
Collection
size
in interface Collection
public boolean isEmpty()
Collection
isEmpty
in interface Collection
public String toString()
Object
toString
method returns a string that
"textually represents" this object. The result should
be a concise but informative representation that is easy for a
person to read.
It is recommended that all subclasses override this method.
The toString
method for class Object
returns a string consisting of the name of the class of which the
object is an instance, the at-sign character `@
', and
the unsigned hexadecimal representation of the hash code of the
object. In other words, this method returns a string equal to the
value of:
getClass().getName() + '@' + Integer.toHexString(hashCode())
toString
in class Object
public boolean add(Object o)
Collection
Collections that support this operation may place limitations on what elements may be added to this collection. In particular, some collections will refuse to add null elements, and others will impose restrictions on the type of elements that may be added. Collection classes should clearly specify in their documentation any restrictions on what elements may be added.
If a collection refuses to add a particular element for any reason other than that it already contains the element, it must throw an exception (rather than returning false). This preserves the invariant that a collection always contains the specified element after this call returns.
add
in interface Collection
o
- element whose presence in this collection is to be ensured.
public boolean remove(Object o)
Collection
remove
in interface Collection
o
- element to be removed from this collection, if present.
public boolean addAll(Collection coll)
Collection
addAll
in interface Collection
coll
- elements to be inserted into this collection.
Collection.add(Object)
public boolean removeAll(Collection coll)
Collection
removeAll
in interface Collection
coll
- elements to be removed from this collection.
Collection.remove(Object)
,
Collection.contains(Object)
public boolean retainAll(Collection coll)
Collection
retainAll
in interface Collection
coll
- elements to be retained in this collection.
Collection.remove(Object)
,
Collection.contains(Object)
public void clear()
Collection
clear
in interface Collection
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |