A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lvzhfeng 中级黑马   /  2015-6-26 15:00  /  522 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

相同点:List和Set都属于单列集合,即都是Collection的子接口
不同点:
*   List:
*           List集合允许出现重复元素,所有元素是以线性方式进行
*   存储的,可以通过索引的方式访问指定元素。另外,List集合还有
*   元素有序的特点,即存入和取出的顺序一致。
*           ArrayList内部封装了一个可变长度的数组,即其数据结构为
*   数组(50%增加)。故而其特点是查询快,增删慢
*           LinkedList内部为一个双向循环链表,每一个元素都以引用的
*   方式来记住他的前一个和后一个元素。其特点是查询慢,增删快。
*   Set:
*           与List不同,Set接口中的元素是无序的,并且都会以某种规则
*   保证存入的元素不出现重复。其主要实现类为:HashSet和TreeSet
*           HashSet查重方式为:每添加一个元素,首先调用该对象的
*   hashCode()方法,确定元素的存储位置,然后调用对象的equals()
*   方法,来确保该位置没有重复元素。使用时一般要自己重写两个方法。
*           TreeSet内部采用自平衡二叉树的结构。既可以保证没有重复元素
*   也能对元素进行排序。因为TreeSet要对元素进行排序,所以必须要
*   保证元素具有可比性。使元素具有可比性的方法有两种:
*           1.实现Comparable接口,重写其中的compareTo方法
*           2.通过自定义比较器的方式,为集合添加比较的功能。
*             class MyComparator implements Comparator
*                 需要在创建集合时传入自定义的比较器:
*        TreeSet ts = new TreeSet(new MyComparator());

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马