java 集合框架 (容器)知识点总结

目录

  1. 集合的引入
  2. List (ArrayList LinkedList)
  3. Set (HashSet LinkedHashSet TreeSet )
  4. Map (HashMap LinkedHashMap TreeMap)
  5. Iterator
  6. 使用泛型
  7. Collections
  8. 集合总结

1.集合的引入

集合的使用场合—Where
• 举例
• 新闻列表
• 就业喜报
• 就业明星
• 邮件列表
• 购物车
当我们需要将一些相同结构的个体整合在一起时,就可以考虑使用集合了 。

1.1集合框架

  • Java集合框架提供了一套性能优良、使用方便的接口和类,它们位于java.util包中
  • 存放在集合中的数据,被称为元素(element)

集合框架图详解:
集合框架
**集合架构 **
• Collection 接口存储一组不唯一,无序的对象
• List 接口存储一组不唯一,有序(索引顺序)的对象
• Set 接口存储一组唯一,无序的对象
• Map接口存储一组键值对象,提供key到value的映射
• Key 唯一 无序 • value 不唯一 无序

集合框架体系图

2.List

2.List
• 特点:有序 不唯一(可重复) List
• ArrayList 线性表中的顺序表

• 在内存中分配连续的空间,实现了长度可变的数组 
• 优点:遍历元素和随机访问元素的效率比较高 
• 缺点:添加和删除需大量移动元素效率低,按照内容查询效率低。

在这里插入图片描述
• LinkedList 线性表中双向链表

• 采用双向链表存储方式。 
• 缺点:遍历和随机访问元素效率低下 
• 优点:插入、删除元素效率比较高(但是前提也是必须先低效率查询才可,	如果插入删除发 生在头尾可以减少查询次数)

在这里插入图片描述

2.List
• List常用方法

 • List相对Collection增加了关于位置操作的方法 

• List的遍历方法

 • for 
 • for-each
 • Iterator迭代器 

• 理解面向接口编程

 • List list = new ArrayList(); 
 • ArrayList list = new ArrayList(); 

• 集合中内容是否相同

 • 通过equals进行内容比较,而是==引用比较

3.Set

• 特点:无序 唯一(不重复)
• HashSet

• 采用Hashtable哈希表存储结构(神奇的结构) 
• 优点:添加速度快 查询速度快 删除速度快 
• 缺点:无序 

• LinkedHashSet

• 采用哈希表存储结构,同时使用链表维护次序 
• 有序(添加顺序) 

• TreeSet

• 采用二叉树(红黑树)的存储结构 
• 优点:有序 查询速度比List快(按照内容查询)
• 缺点:查询速度没有HashSet快

• Set常用方法

• Set相对Collection没有增加任何方法 

• Set的遍历方法

 • for-each 
 • Iterator迭代器 
 • 无法使用for进行遍历(因为无序,所以没有get(i)) 

• HashSet、HashMap或Hashtable中对象唯一性判断

• 重写其hashCode()和equals()方法 

• TreeSet中指明排序依据

• 实现Comparable接口 
• 创建实现Compator接口的类。

4.Map

• Map

• 特点 key-value映射 

• HashMap

• Key无序 唯一 (Set)
• Value 无序 不唯一 (Collection) 

• LinkedHashMap

• 有序的HashMap 速度快 

• TreeMap

• 有序 速度没有hash快

5.Iterator

• 所有集合类均未提供相应的遍历方法,而是把把遍历交给迭代器完成。迭代器为集 合而生,专门实现集合遍历

• Iterator是迭代器设计模式的具体实现

• Iterator方法

• boolean hasNext(): 判断是否存在另一个可访问的元素 
• Object next(): 返回要访问的下一个元素 
• void remove(): 删除上次访问返回的对象。

• 问题:可以使用Iterator遍历的本质是什么

 • 实现Iterable接口

迭代器

6.使用泛型

• 起因:

• JDK1.4以前类型不明确: 
• 装入集合的类型都被当作Object对待,从而失去自己的实际类型。 
• 从集合中取出时往往需要转型,效率低,容易产生错误。 

• 解决办法:

 • 泛型,在定义集合的时候同时定义集合中对象的类型

• 好处:

• 增强程序的可读性和安全性

7.Collections

• 专门用来操作集合的工具类

• 构造方法私有,禁止创建对象 
• 提供一系列静态方法实现对各种集合的操作 
• 具体操作:搜索、复制、排序、线程安全化等 

• 常用方法

• Collections.addAll(list, "aaa","bbb","ccc","ccc"); 
• int index = Collections.binarySearch(list, "ccc"); 
• Collections.copy(list2, list); • Collections.fill(list3, "888"); 
• String max = Collections.max(list4); 
• String min = Collections.min(list4); 
• Collections.reverse(list4); 
• List list5 = Collections.synchronizedList(list4);

8.集合总结

在这里插入图片描述

发布了5 篇原创文章 · 获赞 2 · 访问量 102

猜你喜欢

转载自blog.csdn.net/weixin_46047285/article/details/104113542