美文网首页
Java集合框架简介

Java集合框架简介

作者: Levi_moon | 来源:发表于2021-03-14 21:49 被阅读0次

Java集合框架具有高性能、高效的特点,并允许不同类型的集合,以相似的方式来操作,同时也提供了标准接口来实现扩展。

Java集合框架为不同类型的集合提供了大量接口,可以这么说整个集合框架就围绕着这一组标准接口而设计。

Java集合框架的接口

集合框架有两个基本接口:CollectionMap,此外还有一个迭代器接口:Iterator,及一个标记接口:RandomAccess

一、Collection接口和Map接口

Java 集合框架主要包括两种类型的容器:一种是保存独立元素的序列(Collection),一种是保存成对的“键值对”对象(Map)。

1.Collection接口

Collection中,有些集合允许有重复元素,有些不允许有重复元素;有些元素有序,有些元素无序。
Collection接口有 3 种子类型,分别是:ListSetQueue

(1)List

List接口是一个有序的集合,使用此接口能够精确的控制每个元素插入的位置,能够通过索引(元素在List中的位置,类似于数组的下标)来访问List中的元素,并且,第一个元素的索引为0,而且允许有相同的元素。
List接口存储一组不唯一且有序(插入顺序)的对象。

List有两种类型:

  • ArrayList
    • 最基本、最常用
    • 擅长随机访问元素
    • List中间插入、移除元素时较慢
    • 底层由数组实现
  • LinkedList
    • 不常用
    • 在随机访问元素时较慢
    • List中间插入和移除元素时代价较低
    • 底层由双向链表实现

(2)Set

Set不保存重复的元素,它具有与Collection完全一样的接口,因此它没有任何额外的功能。
Set接口存储一组唯一且无序的对象。

Set常用的有两种类型:

  • HashSet
    • 常用
    • 查找速度快
    • 无序
  • TreeSet
    • 不常用
    • 查找速度不如HashSet
    • 有序(采用红黑树存储)

由于TreeSet内部结构支持排序,并且我们可能还会有迭代的操作,因此使用TreeSet要比使用HashSet更合适。

(3)Queue

Queue(队列)是一种较为特殊的线性表,它是典型的先进先出的容器。即从容器的一端放入事物,从另一端取出,并且事物放入容器的顺序和取出的顺序是相同的。也可以说,队列只允许在表的前端进行删除操作,而在表的后端进行插入操作。

Queue接口没有具体的实现,通常有两种方式来实现它。一是使用循环数组;另一种是通过链表。
LinkedList提供了方法来支持队列的行为,并且实现了Queue接口。

2.Map接口

Map接口存储的是一组键值对象,提供key(键)到value(值)的映射。其中,value(值)可以是任意的容器,甚至也可以是另一个Map.

Map接口的实现有很多,根据特性的不同,效率的高低,保存的形式及多线程方面的考虑,分为了多种实现方式,包括:

  • HashMap
    • 基于散列表的实现,插入和查询键值对的开销是固定的,可以通过构造器设置容量和负载因子
  • TreeMap
    • 基于红黑树的实现,查看键值对或键时会被排序
  • LinkedHashMap
    • 类似于HashMap,但是其使用链表维护内部次序,因此,在迭代访问时速度快
  • ConcurrentHashMap
    • 线程安全的Map,不涉及同步加锁
  • WeakHashMap
    • 弱键映射,允许释放映射所指向的对象,专为解决特殊问题而设计
  • IdentityHashMap
    • 使用==代提equals()对键进行比较的散列映射,专为解决特殊问题而设计

二、Iterator接口

Iterator(迭代器)不是一个集合,它是一种用于访问集合的方法,可用于迭代集合。
迭代器是一种轻量化的对象,创建它的代价非常小,但是也正是因为其创建代价小,而使得其限制多。例如,只能单向移动,使用next()获得序列中的下一个元素,使用hasNext()检查序列中是否还有元素,使用remove()将迭代器新近返回的元素删除。
使用迭代器来遍历集合,是真正的统一了对集合的访问方式,因为它遍历集合的操作与集合底层的结构做到了分离。

需要注意的是,虽然Iterator只能向前移动,但是其子类型,ListIterator却可以双向移动。它可以产生相对于迭代器在集合中指向的当前位置的前一个和后一个元素的索引,并且可以使用set()替换它访问过的最后一个元素。


三、RandomAccess接口

这个接口不包含任何方法,只是用来测试一个特定的集合是否支持高校的随机访问。


·

相关文章

  • Java 集合框架概述

    集合框架简介 Java 平台包含一个集合框架(Collections Framework)。一个集合(Collec...

  • Java基础

    Java集合框架 一、Java集合类简介: Java集合大致分为四种体系:Set:无序、不可重复的集合List:有...

  • Java集合框架-List和Set

    Java集合框架1-List和Set 集合框架简介 Java提供了一系列的集合,主要包括util包下边的Array...

  • Java 集合框架_开篇

    Java 集合框架系列 Java 集合框架_开篇Java 集合框架_ListJava 集合框架_ArrayList...

  • Java 集合框架_List

    Java 集合框架系列 Java 集合框架_开篇Java 集合框架_ListJava 集合框架_ArrayList...

  • java集合框架简介

    集合框架图 Java集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是...

  • Java 集合框架简介

    集合简介 集合的概念,在 Java 的官方文档中,是这样描述的: A collection — sometimes...

  • Java集合框架简介

    Java集合框架具有高性能、高效的特点,并允许不同类型的集合,以相似的方式来操作,同时也提供了标准接口来实现扩展。...

  • 【集合框架】

    集合框架(怎么实现、适用场景) hash相关 Java集合框架 Java集合框架综述Java集合框架面试问题集锦 ...

  • java集合框架List了解多少

    第1集 编程语⾔⾯试题之新版javase集合框架List基础篇简介:java集合框架⾥⾯List常⻅基础⾯试题考查...

网友评论

      本文标题:Java集合框架简介

      本文链接:https://www.haomeiwen.com/subject/ozxefltx.html