黑马程序员技术交流社区

标题: 【集合框架】 总结① [打印本页]

作者: 黑马-王康    时间: 2012-10-5 19:28
标题: 【集合框架】 总结①
本帖最后由 小康康 于 2012-10-5 19:42 编辑

[ 本帖最后由 小康康 于 2012-10-5 19:40 编辑 ]\n\n
1、集合框架之 Vector集合① Enumeration实现 遍历
2、集合框架之 LinkedList  
① link.getFirst(); // 获取第一个但不删除;
② link.removeFirst(); // 删除第一个并返回; ③ 遍历方式一  
3、集合框架之 ArrayList   ①  
4、何时装箱:基本类型值赋值给 引用类型值时 用装箱。比如 Integer it= 5;
5、集合框架 之 HashSet ① 内部数据结构是哈希表,不保证迭代顺序。
② 是不同步的。
③ 为何无序?  因为存储的元素是根据某个算法计算出的哈希值,来进行存储的。存储位置是随机的,所以无序。
④ 哈希表如何确定元素是否相同。首先判断两个元素的哈希值是否相同;若相同在判读两个对象的内容是否相同。判读哈希值是否相同,其实判读的是对象的hashcode();判读内容是否相同,用的是equals();
⑤ HashSet存储元素的方法: ha.add( obj ) ;  
HashSet集合数据结构是哈希表,所以存储元素的时候,使用的元素的hashCode方法带来的不确定位置,如果位置相同的情况下,在通过元素的equals来确定是否相同。
  
6、集合框架之 LinkedHashSet   HashSet使用hashcode()和equals()可以保证不重复,但不能保证有序。使用LinkedHashSet类可以保证有序,即怎么存进去就怎么取出来。  本质是哈希表和链表的结合。
7、集合框架 之 TreeSet
① 无序,即取出和存入的不一致;但是它有指定顺序,是按照元素的字典顺序对Set集合进行排序,是不同步的。    判断元素唯一性的方式:就是根据比较方法的返回结果是否是0,是0就是相同元素,不存。
② 特点:元素不重复,但是可以对Set集合中的元素进行排序。
③ 注意:因为TreeSet 在添加元素是必然有比较,是不同于HashSet的,所以要继承Comparable接口,重写compareTo方法。  
④ TreeSet 对元素进行排序的方式一:让元素自身具备比较功能,元素就需要实现Comparable接口,覆盖compareTo方法。
⑤ TreeSet对元素进行排序的方式二:如果不要按照对象中具备的自然顺序进行排序,若果对象中不具备自然顺序。即Person类的compareTo方法不是你写的。方法是让集合自身具备比较功能:   定义一个类实现comparator接口,覆写期compare方法,然后定义TreeSet类时,将此对象作为构造函数的对象进行传递。  

7、事例: 字符串长度排序分析:因为String类时Java已经写好的对象,所以不能通过重写compareTo方法来进行比较,那么只能通过实现Comparator接口来定义比较器实现了。这样在 ts.add(str1) ; ts.add(str2); 添加String对象时就可以调用compate方法来实现长度的比较了。

作者: 佘天宇    时间: 2012-10-5 19:33
写的是比较多了,但是阅读性真没什么,别见怪这么说

排版真:lol
作者: 黑马-王康    时间: 2012-10-5 19:37
佘天宇 发表于 2012-10-5 19:33
写的是比较多了,但是阅读性真没什么,别见怪这么说

排版真

关于排版,我试了好几次,包括自动排版,添加代码等形式,只要一添加代码都不行。向您请教方式。
作者: 佘天宇    时间: 2012-10-5 19:44
回复的时候不是有添加代码的方式么

而且即使是将文档中的内容复制到上面来  也不是这么样子啊
作者: 佘天宇    时间: 2012-10-5 19:44
这个好多了  呵呵




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2