首页 课程 师资 教程 报名

Java集合框架视频教程,看完本篇全了解了

  • 2020-05-22 14:49:15
  • 1980次 动力节点

Java 集合框架提供了一套性能优良,使用方便的接口和类,java集合框架位于java.util包中, 所以当使用集合框架的时候需要进行导包。下面介绍几个接口中常用的接口以及实现类。

Java集合框架视频教程,看完本篇全了解了

List接口的常用实现类

一个 List 是一个元素有序的、可以重复、可以为 null 的集合(有时候我们也叫它“序列”)。

ArrayList

最常用的List接口实现类,底层使用可变长度的动态数组实现。ArrayList有一个初始容量(capacity = 10),当元素数量大于初始容量时进行扩容,新的数组长度 = 旧数组长度 + 旧数组长度 / 2。

因为每个元素都有固定的位置索引,所以根据索引查询元素的速度非常快。如果在中间插入元素时,由于后面的元素全部要后移一位,所以性能会比较差。

由于没有做并发访问控制,所以它是一个非线程安全的集合。允许重复元素或null元素。

LinkedList

List接口的双向链接的实现类,允许NULL元素。它表现上是一个有序的集合,但内存中其实是无序保存。

由于原因,所以它插入的速度会很快,但是查询一个元素的速度较ArrayList速度慢很多。是一个非线程安全的集合。

Vector

Vector底层使用动态数组实现,默认初始容量为10,可以通过构造方法指定初始容量,同时可以指定扩容时的增量。

扩容规则是指 新容量 = 旧容量 + 扩容增量,若未指定扩容增量则 新容量 = 2 * 旧容量。它的关键方法都加了synchronized,所以是一个线程安全的集合。

Set集合接口

如果是实现了Set接口的集合类,具备的特点:无序,不可重复

添加元素 的顺序与元素出来的顺序是不一致的。

注重独一无二的性质,该体系集合可以知道某物是否已近存在于集合中,不会存储重复的元素。

hashSet

HashSet 底层是使用了哈希表来支持的,特点: 存取速度快。

往Hashset添加元素的时候,HashSet会先调用元素的hashCode方法得到元素的哈希值 ,

然后通过元素的哈希值经过移位等运算,就可以算出该元素在哈希表中的存储位置。

LinkedHashSet

LinkedHashSet 底层使用 LinkedHashMap 来保存所有元素,它继承与 HashSet,其所有的方法操作上又与 HashSet 相同,因此 LinkedHashSet 的实现上非常简单,只提供了四个构造方法。

并通过传递一个标识参数,调用父类的构造器,底层构造一个 LinkedHashMap 来实现,在相关操作上与父类 HashSet 的操作相同,直接调用父类 HashSet 的方法即可。

treeSet

treeSet 底层是以红-黑树的数据结构实现的,默认对元素进行自然排序(String)。

如果在比较的时候两个对象返回值为0,那么元素重复。

Map接口的常用实现类

Map 提供了一个更通用的元素存储方法。 Map 集合类用于存储元素对(称作“键”和“值”),其中每个键映射到一个值。

从概念上而言,您可以将 List 看作是具有数值键的 Map。 而实际上,除了 List 和 Map 都在定义 java.util 中外,两者并没有直接的联系。

本文将着重介绍核心 Java 发行套件中附带的 Map,同时还将介绍如何采用或实现更适用于您应用程序特定数据的专用 Map。

HashMap

往HashMap添加元素的时候,首先会调用键的hashCode方法得到元素的哈希码值,然后经过运算 就可以算出该元素在哈希表中的存储位置。

并允许使用 null 值和 null 键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。

HashTable

HashTable是同步的(synchronized函数),而HashMap不同步,所以HashTable要慢一些HashTable不接受null键和值。

而HashMap接受一个null键和无数个null值除了keySet(), entrySet(), values()这些HashMap支持的迭代之外,HashTable还支持基于Enumeration的keys(), elements(), 但是在现在它们的实现都是基于一个实现了Enumeration和Iterator接口的类。

TreeMap

TreeMap也是基于红黑树(二叉树)数据结构实现 的, 特点:会对元素的键进行排序存储。

注意:Set的元素不可重复,如果set元素重复将添加不成功。

Map的键不可重复,如果键重复将直接覆盖。

Java集合框架视频教程,看完本篇全了解了

以上就是动力节点java培训机构的小编针对“Java集合框架视频教程,看完本篇全了解了”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交