美文网首页
2_Collection

2_Collection

作者: Michael_748c | 来源:发表于2018-03-15 16:53 被阅读0次

(一)Collection分类体系

image.png

(二)List、Set、Queue子接口

1,Collection体系下面是Set、List、Queue子接口;

  • List:有序集合,值允许有重复;
    我们需要可以自动扩展的数组,所以有了List;
    List集合可以说与数组的区别就在于长度可变,它同样可以如数组下标那样记住每次添加元素的顺序,List集合集合中的元素值同样也可以重复。

  • Set:无序集合,值不允许有重复;
    Set集合与List集合恰好相反:
    1:Set集合是无序的,无法像数组那样通过下标找到对应的元素;不是后续添加到Set中的元素就排在后面,因为没有排队这一说。
    2:Set集合的元素是不能重复的,因为本来就没有顺序了,如果还可以重复那就乱到无法管理了。

  • Queue:JDK1.5以后Java提供的队列实现,有点类似于List;


我们需要值没有重复的数组,所以有了Set;我们需要自动排序的Set,所以又有了TreeSet;

2,实现类

我们平常用的最多就是它们的实现类,有的实现类并不是直接继承这三个子接口,也不是只能继承其中的一个接口而已。

栗子1

根据源码,可以知道HashSet是Set接口的实现,同时它还继承了AbstractSet这个父类(该父类也实现了Set接口)

public class HashSet<E>
        extends AbstractSet<E>
        implements Set<E>, Cloneable, java.io.Serializable{
}

public abstract class AbstractSet<E> extends AbstractCollection<E> implements Set<E> {
}

栗子2

LinkedList类不仅实现了List接口,还实现了Deque接口(Deque接口是Queue接口的子接口)

public class LinkedList<E>
        extends AbstractSequentialList<E>
        implements List<E>, Deque<E>, Cloneable, java.io.Serializable{
}

常用实现类

我们常用的List集合有:Vector、LinkedList、ArrayList;
我们常用的Set集合有:HashSet、TreeSet;

不管是直接还是间接,Vector、LinkedList、ArrayList都实现了List接口;
HashSet、TreeSet都实现了Set接口;
Queue这里暂时不做阐述;

相关文章

  • 2_Collection

    (一)Collection分类体系 (二)List、Set、Queue子接口 1,Collection体系下面是S...

网友评论

      本文标题:2_Collection

      本文链接:https://www.haomeiwen.com/subject/zuocqftx.html