def key_set(self, predicate=None):
if predicate:<EOL><INDENT>predicate_data = self._to_data(predicate)<EOL>return self._encode_invoke(map_key_set_with_predicate_codec, predicate=predicate_data)<EOL><DEDENT>else:<EOL><INDENT>return self._encode_invoke(map_key_set_codec)<EOL><DEDENT>
Returns a List clone of the keys contained in this map or the keys of the entries filtered with the predicate if
provided.

**Warning:
The list is NOT backed by the map, so changes to the map are NOT reflected in the list, and vice-versa.**

:param predicate: (Predicate), predicate to filter the entries (optional).
:return: (Sequence), a list of the clone of the keys.

.. seealso:: :class:`~hazelcast.serialization.predicate.Predicate` for more info about predicates.