java中list和set的区别与联系

此文章是看别的大牛整理之后,自己学习进行消化后,对子自己的理解和得到的内容的一个总结。
      接口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接口的子类中包括: ArrayList LinkedList Vector。其中ArrayList这个类是类似数组形式的集合实例化,而LinkedList类则是链表形式的实例化,具体的差别在于数据结构上面的不同。Vector 类非常类似ArrayList,两者的不同之处在于Vector是同步的方法,在多线程操作的时候可能会抛出ConcurrentModificationException。
    实现Set接口的子类中包括:HasSet。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值