JAVA集合框架课堂笔记._第1页
JAVA集合框架课堂笔记._第2页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1:集合与数组的优缺点 2:集合框架的体系分类:A :集合(SET B:列表 (LIST C :映射(Map D :数据结构(队列、栈 3:集合:特点:A :不允许对象重 复。B:允许一个且只有一个 NULL 元素。HashSet/Li nkedHashSet/TreeSet/Copy On WriteArraySet 3.1 HashSet A:底层是由HashMap 实现的。B: HashSet 中的元素是无序的。在不同的 JDK 版本上,顺序是 不一样的。C:是非线程同步的集合。D :会出现快速失败异常。HashSet 先比较 对象的hashCode 如果 hashCode 在集合中不存

2、在,则直接加入元素。如果hashCode相等, 再比较两个对象是否 equals,如果不equals,可以加入元素。 女口 果equals,那么说明对象在集合中已经存在,不允许加入重复的元素。两个对象如果 equals,那么对象的 hashCode定相同。两个对象的 hashCode 相同的话,对 象不一定 equals. 3.2 LinkedHashSet A:底层是由链表实现的。B: LinkedHashSet中的元素是有序的。(插入的顺序有序 C:是非线程同步的集合。D:会出现快速 失败异常。3.3: Copy On WriteArraySet A :底层是由数组实现的。B:CopyOn

3、WriteArraySet 中的元素是有序的。(插入的顺序有序 C:是线程同步的集 合。D:不会出现快速失败异常。3.4: TreeSet A:底层是由二叉树实现的。B:TreeSet 中的元素是有序的。(对象之间有序 C:不是线程同步的集合。D:会出现 快速失败异常。4:迭代器:快速失败异常:当方法检测到对象的并发修改,但不 允许这种修改时,抛出此异常 解决方法:A :迭代器删除 B:锁抢回来。集合自 已删除。(前提:线程同步的集合 5: List 特点:A :允许对象重复。B :允许多个 NULL,C:无素在 List 中有序的。ArrayList/LinkedList/CopyOnWri

4、terArrayList/Stack/Vector 5.1 : ArrayList: A :底层是 由数组实现的。B:元素是有序的。(插入顺序有序 C :不是线程同步的集合。D :会出现快速失败异常。List 的 2 种迭代方式。ListIterator :双向迭代器subList :返回的 List 中的部分视图,subList 值的改变会影响到原来的 List 的结 构。5.2 :LinkedList A :底层是由链表实现的。B:元素是有序的。(插入顺序有 序 C:不是线程同步的集合。D :会出现快速失败异常。5.3 :Copy On WriterArrayList A :底层是由数组实

5、现的。B:元素是有序的。(插入顺序 有序 C:线程同步的集合。D :不会出现快速失败异常。注意:ArrayList 和LinkedList 的区别:A:从底层的实现 B:从操作的性质:读取用 ArrayList,增删 改用LinkedList。6: Map 映射 特点:A:键值对必须匹对 B:键不能重复。HashMap/Li nkedHashMap/HashTable/Tree Map 6.1HashMap: A:底层是由哈希表实现的。B :元素是无序的。C:不线程同步的集合。D:会出现快速失败异常。E:允许 NULL 键,NULL 键只能有一个。F:允许NULL 值,NULL 值可以有多个。

6、E:加入相同的键,后面覆盖前面添加的元素。Map 的 3 种迭代方式:KeySet EntrySet Values 6.2 LinkedHashMap: A :底层是由 哈希表+链表实现的。B:元素是有序的。(插入有序 C:不线程同步的集合。D: 会出现快速失败异常。E:允许 NULL 键,NULL 键只能有一个。F:允许 NULL 值,NULL 值可以有多个。E:加入相同的键,后面覆盖前面添加的元素。7:老的集合框架类:老的集合类:全都是线程同步的集合,而且直接实例化,不使用 对象的上转型实例化。Vector/HashTable/E nu meratio n 7.1 Vector Vecto

7、r 的用法与ArrayList 的用法一致。7.2: HashTable A:底层是由哈希表实现的。B :元素是无序的。C:线程同步的集合。D :不会出现快速失败异常。E:不允许 NULL 键和 NULL 值。7.3: Enumeration:旧的迭代器。没有提供 remove 方法,因为旧的集合 都是线程安全的集合,直接 删除不会出现快速失败异常。&排序的集合 排序的集合是指对象在集合中是有序的。不是指插入顺序。TreeSet/TreeM ap 8.1 TreeSetA:底层是由 TreeMap 实现的。B:不可以加入重复的元素。C:能否加入 NULL元素 可以加入 NULL 元素,

8、 但一旦加入 NULL 元素, 其它元素就不能添加了, 因 为 NULL无法跟任何对象比较。D:非线程同步的集合 E:集合中的顺序默认是 按照自然顺序排序的。F:集合中的对象类型必须是同一种类型。G:加入的对象必须实现比较接口(comparables 8.2 : Comparable 与 Comparator Comparable 内部 比较器。表示对象在加入到集合中,集合内部就对元素进行自然顺序的排序。Comparator:外部比较器。当无法改变内部比较器的源码或者想要改变自然顺序的 排序。可以指定新的一个比较器。创建集合时,可以通过构造方法指定外部比较器 8.3 : Tree Map A

9、: TreeM ap 中按照键的自然顺序来做排序的。因此键的类型必 须一致。B:其它的特点与 TreeSet 一样。9:数据结构:栈:先进后出的一种数 据结构。(vector-stack 队列: 先进先出的一种数据结构。Queue-LinkedListQueue 中的方法只是实现单向队列的一种数据结构。LinkedList 不仅是单向,而且可以实现双向队列的操作。即可以操作队头,也可以操作队尾。集合的工具类:Arrays:数组的工具类 asList(,只能将对象类型的数组转化成集合。biarySearch(;sort( System.arrayCopy(; Collectio ns 集合的工具

10、类。 copy(; max( mi n(; sort(;集合与 数组之间的转换 数组只能与 List/SET 进行转换,不能与 Map 进行转换。数组转成 ListArrays.asList 数组转成 SET 先转 List,然后通过 List构建 SET。 List 转成数组: 调用 toArray方法。返回的是 Object 数组。如果要返回具体类型的数组:String strArray =(Stringlist.toArray(new String0; SET 转成数组: 调用 toArray 方法。返 回的是 Object数组。如果要返回具体类型的数组:String strArray =(Stringlist.toArray(new String0;集合的一些新特性:A :泛型 T: Type,数据类型。E: Element。元素。K: key V: value B:自动拆箱与装箱 针对 8 种基本数据 类型。装箱,自动包装。拆箱:需要泛型的支持。C:新增的 FOR 循环 for(String str : list i = i + 1;System.out.println(str; 优点:适合用于纯粹的遍历。 缺 点:无法得到下标值。 D:静态导入。import static java.la ng.Math.*;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论