家蛙树

为什么集合类没有实现Cloneable和Serializable接口?
  get新技能了
 
  1. 集合类接口Collection,List,Set,Map定义了自己集合类的抽象即可,如果接口的设计也要考虑是否可以克隆,串行化等一堆额外特性,那是不是还要额外考虑是否可以Closeable, 接口就不是基于抽象,不是纯粹的接口了。

  2. 对于具体的实现类, java.util.ArrayList,LinkedList,HashMap,HashSet, 有什么特性就实现什么接口,可以实现多个接口即可。实际这些类都实现了Cloneable和Serializable接口,因为实际应用中集合类很常用,串行化和克隆也常用。

public class HashMap<K,V> extends AbstractMap<K,V>
    implements Map<K,V>, Cloneable, Serializable;
    
public class HashSet<E>
    extends AbstractSet<E>
    implements Set<E>, Cloneable, java.io.Serializable;

public class LinkedList<E>
    extends AbstractSequentialList<E>
    implements List<E>, Deque<E>, Cloneable, java.io.Serializable;
    
public class ArrayList<E> extends AbstractList<E>
        implements List<E>, RandomAccess, Cloneable, java.io.Serializable;


java.util集合类
发表于:2017-08-29 21:27
状态: 已解决
  问题人
博弈信息界
问题:62 答题:14
心得:0 被赞:0
  答题人
Zealot
问题:2 答题:87
心得:20 被赞:0
支付宝扫码支付