Java集合框架:Collection和Map(基础)

集合与数组的对比

  • 数组的长度固定,集合的长度可变
  • 数组只能通过下标访问元素,类型固定,一般只能采用遍历的方式,当数据量大时会很不方便。而有些集合类型提供了映射关系,可以通过任意类型查找所映射的具体对象,从而方便的查找具体对象。

Java集合框架:Collection和Map

  • Collection和Map是Java集合框架中的两个根接口。

  • Collection根接口主要有三个子接口,分别为:List(序列)、Queue(队列)、Set(集)。

  • 其中List和Queue中的元素是排列有序的,并且是可重复的。Set中元素是无序的、不可重复的。

  • List重要的实现类:ArrayList(数组序列)。

  • Queue重要的实现类:LinkedList(链表)。LinkedList同时也是List接口的实现类。

  • Set重要的实现类:HashSet(哈希集)。

  • Map也有众多的子接口,但最常用的是他的实现类:HashMap(哈希表)。

  • Collection中存储的就是一个个独立的对象,Map的内部会以Entry键值对的形式存储,其中Key和Value可以是任意类型的对象。

    java集合框架

Collection接口、子接口以及实现类

Collection接口
  • 是Java集合框架中的一个根接口
  • 是List、Queue、Set接口的父接口
  • 定义了可用于操作List、Queue、Set增删改查的方法
List接口及其实现类——ArrayList
  • List是元素有序并且可以重复的集合,被称为序列
  • List可以精确控制每个元素的插入位置,或删除某个位置上的元素
  • ArrayList——数组序列,是List的一个重要的实现类
  • ArrayList底层是由数组实现的

注:

1、在没有指定泛型的情况下,对象存入集合都会变成Object类型,所以在取出时需要类型转换。

1
Student student = (Student)studentList.get(0);

2、泛型

泛型制定了某个集合只能存放特定类型的对象,会在编译期间进行类型检查,可以按指定类型获取集合元素。

泛型集合也可以添加泛型的子类型。

泛型集合的限定类型不能使用基本数据类型,可以通过使用包装类限定允许存入的基本数据类型。

Set接口及其实现类——HashSet
  • Set是元素无序并且不可以重复的集合,被称为集。
  • HashSet——哈希集,是Set的一个重要实现类。
  • Set中,添加某个对象,无论添加多少次,最终只会保留一个该对象(的引用),并且保留的是第一次添加到那个。
  • Set是无序的,所以在取的时候不能用get()方法,不能用for循环,只能用foreach或者iterator,并且每次遍历的顺序都是不同的。

Map和HashMap

Map接口
  • Map提供了一种映射关系,其中的元素是以键值对(key,value)的形式存储的,能够实现根据key快速查找到value
  • Map中的键值对是以Entry类型的对象实例形式存在的

键值对

  • key值不可重复,value值可以重复
  • 每个键最多只能映射到一个值
  • Map接口提供了分别返回key集合、value集合、Entry集合的方法
  • Map支持泛型,形式如:Map
HashMap类
  • HashMap是Map的一个重要的实现类,也是最常用的,基于哈希表实现
  • HashMap中的Entry对象是无序排列的
  • Key值和Value值都可以为null,但是一个HashMap中只能有一个Key值为null的映射。
您的支持将鼓励我继续创作~