Java中的集合框架的理解和使用:
我们先来了解一下数组:
数组,是一种存放对象的容器,数组中的元素可以是任意类型(包括基本类型和引用类型),但是使用数组时,有两个限制:
(1)同一个数组中所有的元素必须是相同的类型,要么是引用类型,要么是基本类型。
(2)数组一旦被创建,其数组的大小便固定,不能改变,因此,灵活性不足,不适合在对象数量未知的情况下使用。
集合,顾名思义,就是用来存储数据的对象(为什么称为对象,因为在Java中万物皆对象,所有的操作都是面向对象的,概念中的数据指的是其他对象)。集合具有两个特点:
(1)集合中存储的对象类型可以不一样。
(2)集合的长度可变。
集合框架是在java.util包下的。集合框架主要由几个接口和实现类组成:
Collection是所有集合类的根接口。但是Java没有为这个接口提供实现类,但是它可以被List和Set接口继承(接口可以继承借口)。
List(列表):有序存放,允许重复,可以存放不同类型的对象。
List接口的特点:
(1)List中有索引,拥有一系列与索引相关的方法,查询速度快(可以通过索引查询)。
(2)List中插入和删除数据速度慢。
List接口具有两个实现类:
(1)ArrayList
(2)LinkedList
ArrayList是基于动态数组的数据结构,适用于查询操作多,增删操作少的情况。
LinkedList是基于链表的数据结构,适用于增删操作多,查询操作少的情况。
Set(集合):无序存放,不允许重复,可存放不同类型的对象。
(注:如何区分List和Set的特点:只需记住Set(集合),集合在数学领域中具有三个特性(1.确定性 2.互异性 (集合中的任何两个元素是不同的)3.无序性),就能记住并区分这两个接口的特点。)
Set接口具有两个实现类:
(1) HashSet
(2)TreeSet
Map(映射)是Java.util包中的另一个接口,它和Collection接口没有关系,但是都属于集合类中的一部分。
Map集合中存储的是键值对,键不能重复,值可以重复
Map接口具有两个实现类:
(1)HashMap
(2)TreeMap
HashMap是通过hashCode对其内容进行快速查找,适用于进行插入、删除和定位元素操作的情况。
TreeMap则适用于按照自然顺序或自定义顺序遍历键的情况。