java程序员必备的java理论,集合(容器)集合引入、list、set

可关注小编私信“教程”,获得下载地址

集合(容器)

目录

•集合的引入

•List (ArrayList LinkedList)

•Set (HashSet LinkedHashSet TreeSet)

本次分享技能点列表

java程序员必备的java理论,集合(容器)集合引入、list、set

java程序员必备的java理论,集合(容器)集合引入、list、set

1、集合的引入

集合的使用场合--Where

•举例

•新闻列表

•就业喜报

•就业明星

•邮件列表

•购物车

•当我们需要将一些相同结构的个体整合在一起时,就可以考虑使用集合了 。

为什么使用集合而不是数组--Why

•集合和数组相似点

都可以存储多个对象,对外作为一个整体存在

•数组的缺点

长度必须在初始化时指定,且固定不变

数组采用连续存储空间,删除和添加效率低下

数组无法直接保存映射关系

数组缺乏封装,操作繁琐

java程序员必备的java理论,集合(容器)集合引入、list、set

集合架构

•Java集合框架提供了一套性能优良、使用方便的接口和类,它们位于java.util包中

•存放在集合中的数据,被称为元素(element)

java程序员必备的java理论,集合(容器)集合引入、list、set

•Collection 接口存储一组不唯一,无序的对象

•List 接口存储一组不唯一,有序(索引顺序)的对象

•Set 接口存储一组唯一,无序的对象


•Map接口存储一组键值对象,提供key到value的映射

Key 唯一 无序

value 不唯一 无序

java程序员必备的java理论,集合(容器)集合引入、list、set

2、List

•特点:有序 不唯一(可重复)

•ArrayList

在内存中分配连续的空间,实现了长度可变的数组

优点:遍历元素和随机访问元素的效率比较高

缺点:添加和删除需大量移动元素效率低,按照内容查询效率低,

•LinkedList

采用链表存储方式。

缺点:遍历和随机访问元素效率低下

优点:插入、删除元素效率比较高(但是前提也是必须先低效率查询才可。如果插入删除发生在头尾可以减少查询次数)

java程序员必备的java理论,集合(容器)集合引入、list、set

java程序员必备的java理论,集合(容器)集合引入、list、set

java程序员必备的java理论,集合(容器)集合引入、list、set

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快

java程序员必备的java理论,集合(容器)集合引入、list、set

java程序员必备的java理论,集合(容器)集合引入、list、set


Set常用方法

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

Set的遍历方法

for-each

Iterator迭代器

无法使用for进行遍历(因为无序,所以没有get(i))

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

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

TreeSet中指明排序依据

实现Comparable接口

创建实现Compator接口的类。

哈希表存储原理

神奇的表结构,添加和查询数据速度非常快

演示添加过程

一次添加成功

数据已经存在

多次添加成功

•演示查询过程

1次查询获取

多次查询获取

不存在的数据

•hashCode如何计算

整数、实数

字符串 对象

java程序员必备的java理论,集合(容器)集合引入、list、set

不知道有多少java程序员能看到这里。

如果你依然觉得有些茫然,不如跟有多年Java开发经验的资深工程师聊一聊。

每天2小时学习时间,密集输入Java开发相关知识及经验,帮你快速实现技术和职业成长上的突破。

只需要关注+转发+评论,然后私信我“教程”就可以获取了,方法很简单,就看自己怎么去把握了,看好你们哦!


分享到:


相關文章: