欢迎光临散文网 会员登陆 & 注册

学习记录之集合

2022-08-20 15:44 作者:星月袭空  | 我要投稿

什么是集合

集合与数组一样,可以保存一组元素,并且提供了操作元素的相关方法,使用更方便.

java集合框架中相关接口

java.util.Collection接口:

java.util.Collection是所有集合的顶级接口.Collection下面有多种实现类,因此我们有更多的数据结构可供选择.

Collection下面有两个常见的子接口:

  • java.util.List:线性表.是可重复集合,并且有序.

  • java.util.Set:不可重复的集合,大部分实现类是无序的.

常用方法:

这里可重复指的是集合中的元素是否可以重复,而判定重复元素的标准是依靠元素自身equals比较的结果.为true就认为是重复元素;

集合与元素equals方法相关的方法


集合存放的是元素的引用

集合只能存放引用类型元素,并且存放的是元素的引用

集合间的操作:

集合提供了如取并集,删交集,判断包含子集等操作;

集合的遍历:

Collection提供了统一的遍历集合方式:迭代器模式

Iterator iterator()

该方法会获取一个用于遍历当前集合元素的迭代器.

java.util.Iterator接口:

迭代器接口,定义了迭代器遍历集合的相关操作.
不同的集合都实现了一个用于遍历自身元素的迭代器实现类,我们无需记住它们的名字,用多态的角度把他们看做为Iterator即可.
迭代器遍历集合遵循的步骤为:问,取,删.其中删除元素不是必要操作:

迭代器遍历过程中不得通过集合的方法增删元素

增强型for循环

JDK5之后推出了一个特性:增强型for循环

也称为新循环,使得我们可以使用相同的语法遍历集合或数组.
- 语法:

泛型:

JDK5之后推出的另一个特性:泛型

泛型也称为参数化类型,允许我们在使用一个类时指定它当中属性,方法参数或返回值的类型.

- 泛型在集合中被广泛使用,用来指定集合中的元素类型.
- 有泛型支持的类在使用时若不指定泛型的具体类型则默认为原型Object

List集:

java.util.List接口,继承自Collection.

List集合是可重复集,并且有序,提供了一套可以通过下标操作元素的方法

常用实现类:

- java.util.ArrayList:内部使用数组实现,查询性能更好.
- java.util.LinkedList:内部使用链表实现,首尾增删元素性能更好.

List集合常见方法:

get()与set():

重载的add()和remove()

subList()方法

集合与数组的转换:

集合转换为数组

Collection提供了一个方法:**toArray**,可以将当前集合转换为一个数组

数组转换为List集合:

数组的工具类Arrays提供了一个静态方法**asList()**,可以将一个数组转换为一个List集合

集合的排序

java.util.Collections类

Collections是集合的工具类,里面定义了很多静态方法用于操作集合.

Collections.sort(List list)方法

可以对List集合进行自然排序(从小到大)

集合的排序

java.util.Collections类

Collections是集合的工具类,里面定义了很多静态方法用于操作集合.

Collections.sort(List list)方法

可以对List集合进行自然排序(从小到大)

排序自定义类型元素

实际开发中,我们并不会让我们自己定义的类(如果该类作为集合元素使用)去实现Comparable接口,因为这对我们的程序有侵入性.

侵入性:当我们调用某个API功能时,其要求我们为其修改其他额外的代码,这个现象就是侵入性.侵入性越强的API越不利于程序的后期可维护性.应当尽量避免.

重载的Collections.sort(List list,Comparator c)方法

Map 查找表

Map体现的结构是一个多行两列的表格,其中左列称为key,右列称为value.

  • Map总是成对保存数据,并且总是根据key获取对应的value.因此我们可以将查询的条件作为key查询对应的结果作为value保存到Map中.

  • Map有一个要求:key不允许重复(equals比较的结果)

java.util.Map接口,是所有Map的顶级接口,规定了Map的相关功能.

常用实现类:

  • java.util.HashMap:称为散列表,使用散列算法实现的Map,当今查询速度最快的数据结构.

  • java.util.TreeMap:使用二叉树实现的Map

Map的遍历

Map支持三种遍历方式:

  • 遍历所有的key

  • 遍历所有的键值对

  • 遍历所有的value(相对不常用)

总结

java.util.Map 查找表

特点:体现的结构是一个多行两列的表格,其中左列称为key,右列称为value。

Map中的key不允许重复。判定重复的标准是根据key的equals方法判定的。

常用的实现类:java.util.HashMap 散列表

常用方法:


学习记录之集合的评论 (共 条)

分享到微博请遵守国家法律