java中list和set的区别与联系

来源:互联网 发布:mac os 修改开机密码 编辑:程序博客网 时间:2024/05/18 03:44
此文章是看别的大牛整理之后,自己学习进行消化后,对子自己的理解和得到的内容的一个总结。
      接口Collection
      Collection是java.util下的一个接口,它继承的类是Iterable<E>。它是关于集合方面的一个跟接口,也就是java中所有处理集合的数据方面都是直接或者间接实现Collection接口。其中java中提供了详细的Collection的API。
      Collection接口有很多的子接口,其中包括最常用的子接口就是List和Set。
      所以,针对List和Set的联系在于,它们都是Collection的子接口
      至于区别在于哪里,下面做一下详细的介绍。
     List:这个接口能够精准的记录每一个元素的插入位置(换句话说就是这个接口内容所有元素是按照顺序去保存的),使用者可以通过索引的方式去取得某个元素的值,这个跟java中数组有点类似,List中保存的所有数据允许重复。
     Set:这个接口无法记录每一个元素的具体位置,整个集合中所有元素是无序排列的,并且Set存储数据集合是不允许有重复的元素的。

     既然List和Set均为接口,那么就不能直接实例化,需要借助实现他们接口的子类进行实例化,由此来使用接口中提供的各种方法。
   
     实现List接口的子类中包括:ArrayListLinkedListVector。其中ArrayList这个类是类似数组形式的集合实例化,而LinkedList类则是链表形式的实例化,具体的差别在于数据结构上面的不同。Vector 类非常类似ArrayList,两者的不同之处在于Vector是同步的方法,在多线程操作的时候可能会抛出ConcurrentModificationException。
    实现Set接口的子类中包括:HasSet。
0 0
原创粉丝点击