深入浅出熟悉Java集合系列(一)Java集合概述

概述

    Java集合是常用的工具类,用于存储数量不等的对象,并可以实现常用的数据结构,如栈、队列等,还可保存具有映射关系的关联数组。Java集合大致有Set、List、Map、Queue四种体系,其中

  • Set代表无序、不可重复的集合
  • List代表有序、可重复的集合
  • Map代表具有映射关系的集合
  • Queue代表队列集合(Java5新增集合)

    Java集合就像是一个容器,可以把多个对象(实际上存储的是对象的引用)放在容器中,从Java5之后Java集合会记住容器中的对象数据类型,也就是说不会统一当做Object类型来处理。本系列文章将详细介绍Java四种集合体系的功能和用法,从源码和API中深入分析各集合实现类的实现机制、独特功能、应用场景。


温馨提示   

此为Java集合系列文章,该系列文章涉及的源码全部基于JDK1.8。本文将对Java集合总体框架进行概述,后续将不断更新和优化本文内容,同时后文将会对Java的四种集合以及集合工具类做详细介绍,敬请期待!

本文作者:Horace_hr       

作者博客地址:https://blog.csdn.net/Horace_hr

本文地址:https://blog.csdn.net/Horace_hr/article/details/81142008(转载请标明出处,谢谢!)


一、Java集合框架

  1.Collection集合体系

  Java集合类是为了保存数量不确定的数据以及具有映射关系的数据,Java所有集合类都在java.util包下。Java的集合类主要Collection和Map两个接口派生而出,这两个接口是Java集合框架的根接口,图示为Collection和Map接口的子接口及其实现类的继承树。

代码示例集合的关系:

public interface Collection<E> extends Iterable<E>
public interface Set<E> extends Collection<E>
public interface Queue<E> extends Collection<E>
public interface List<E> extends Collection<E>

   上图中显示了Collection体系集合(补充:Iterable接口是Collection的父接口)。 Collection接口是Set、Queue、List接口的父接口,该接口里定义的方式可操作Set、Queue、List集合。 

   Set集合里的元素是无序的,Set无法为每个元素定义添加的顺序,所以为了避免系统无法准确找到某一元素,要求Set集合的元素不能重复,访问Set集合的元素时,只能根据元素本身来访问。

    List集合类似于数组,List会为每一个元素根据添加顺序指定下标,同时List的长度是可变的。访问List集合的元素时,可以直接根据元素的索引来访问。

   Queue集合和List集合有类似,它主要模拟队列这种数据结构。队列通常是“先进先出”(FIFO)的数据结构(类似于生活中在通道处排队等候,先进先出),队列头部元素最先进入集合,删除元素时从头部删除,后续新元素总会加入到队列的尾部,也就是说队列操作元素时遵循头部删除、尾部添加的原则。通常,队列不允许随机访问队列中的元素,只能获取到队列头部的元素。

(注:关于Set、Queue、List集合的具体内容将会在后文详解,此处仅展示框架。)

  2.Map集合体系

Map接口代码示例:

public interface Map<K,V>

   上图中显示了Map体系集合,Map保存的每项数据都是key-value对(也叫键值对),其中Map里的key是不可重复的,key用于标识集合中的每项数据,查询数据时通过key来获取元素相应的value。

 

总结:对于Set、List、Queue、Map四种即可,最常用的为上图中灰色背景覆盖的HashSet、TreeSet、ArrayList、ArrayDeque、LinkedList、HashMap和TreeMap等实现类。 

注:本文内容还在不断更新中.......

 


引用

本文参考资料为李刚编著《疯狂Java讲义(第3版)》

请各位小伙伴不吝赐教,多多批评。喜欢的小伙伴可以“推荐”一下,不胜感谢!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值