java集合框架系列(1)集合框架概述

持有一批引用

在编程实践过程中,很多业务场景需要处理一批不确定数量的对象,而又没有必要为每一个对象创建引用(通俗讲,为对象起一个名字),使用对象引用来逐个持有这些对象。很自然地,容器可以解决这一问题。

在逻辑层面,容器在内存中(不是持久化存储)为多项数据提供存储空间。此时,可以创建容器对象,并将这一批对象存储在容器对象中,即使用一个容器对象引用持有一批对象

对象封装一堆数据,集合存储一堆对象

在java的实现层面,数组和集合类都可称为容器,都可以持有一批引用。

集合扩充了数组

其中,静态数组被java定义为内置数据类型,它当然是持有一组对象的最有效的方式。但数组存在若干不足之处,包括

  • 数组一旦声明,长度即固定,不可更改;
  • 删除、增加元素的效率低;
  • 不能直接获取数组中的已存储的实际元素的数量;
  • 数组中数据是有序的、可重复的,不能满足无序的或不可重复的场景;

java集合框架中的多个集合类分别克服了以上缺点,扩充了容器的应用范围,譬如,集合提供了一些数组没有的功能

  • 集合容器都可以动态扩容;
  • 提供size、contain等方法,可直接获取集合已存储的数量和判断是否存在指定数据;
  • 提供了add,addAll等方法,可向指定位置添加元素;

但集合类同样存在不足之处,java的集合类只能存储对象引用,不能存储基本数据类型。而数组可以存储基本数据类型和对象引用。但jdk1.5引入了自动装箱与拆箱机制,用户可以使集合类存储基本数据类型,底层由jvm执行自动装箱操作。

集合内容分类

整个集合框架围绕一组标准接口而设计,可以直接使用这些接口的标准实现,也可以通过这些接口实现自己的集合。集合框架是一个用来代表和操纵集合的统一架构,主要包含如下内容:

  • 接口: 代表集合的抽象数据类型。例如 Collection、List、Set、Map 等。之所以定义多个接口,是为了以不同的方式操作集合对象

  • 实现(类): 集合接口的具体实现。从本质上讲,它们是可重复使用的数据结构,例如:ArrayList、LinkedList、HashSet、HashMap。

  • 比较器: 提供排序逻辑的实现。包括Comparable和Comparator。

  • 工具类: 操作存储在集合中的对象,以实现某种需求。例如:搜索和排序,主要以Collections类和Arrays类的静态方法的方式存在。

三种遍历方式

既然是容器,集合核心功能是存储和遍历。存储主要是集合框架中的接口和类中定义的添加方法,而遍历主要由以下三种。

  • 一般for循环方式
    这种方式要求集合类中有下标的概念,例如List的子类;
  • foreach方式
    继承了Iterable接口。Iterable接口使所有继承或实现Collection接口的子类可以使用foreach遍历元素。
  • 使用迭代器方式
    实现Itetator接口,这是迭代器模式 在jdk中具体应用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值