Java 集合框架 collection详解

Java 集合框架

在这里插入图片描述

1.集合由来

 1.  在Java2之前,java是没有完整的集合框架的,它只有一些简单的可以自扩展的容器类,比如Vector,Stack,Hashtable等。java collections Framework(JCF)是通用的容器
 2. 容器类可以存储多个数据,且java的容器类只能存放对象,对于基本类型(int,long,float,double等)需要被包装成对象类型后(Integer,Long,Float,Double等)才能放到容器里。这样会导致额外的性能和空间的开销
 3. 数组 可以存基本类型的数据也可以保存对象。在数组可以存储多个数据的情况下,为什么还要定义容器类?
     3.1.数组一旦初始化后其长度是固定不变的
     3.2 如果在N个地方需要存储多个数据,都要专门编写数组的操作方法,如此一来,没有实现DRY原则,即代码功能重复—破坏封装
     3.3  如果每一个人都要用到数组类,但是不同的人定义的类名和方法都是不同的,实现细节也是参差不齐的。SUN公司自己定义好容器类,每一个开发者只管调用即可。      
尽管这些容器类非常好用,但是却不能集中和统一管理。集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。综合上述原因,因此集合被设计出来。
1.1 集合框架被设计成要满足以下几个目标。
  1. 该框架必须是高性能的。基本集合(动态数组,链表,树,哈希表)的实现也必须是高效的。
  2. 该框架允许不同类型的集合,以类似的方式工作,具有高度的互操作性。
  3. 对一个集合的扩展和适应必须是简单的。

2 集合框架

在这里插入图片描述
由上图可知道:
1. Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是 图(Map),存储键/值对映射
2 List , Set, Map都是接口,前两个继承至Collection接口,Map为独立接口
3. Set 下有HashSet,LinkedHashSet,TreeSet
4. List 下有ArrayList,Vector,LinkedList
5. Map下有Hashtable,LinkedHashMap,HashMap,TreeMap

3.list 集合和set集合特点

  list 接口:
  1.有顺序以线性方式存储,可以存放重复对象
  2 可以存放重复的元素
  3 有索引  可以用for 循环遍历
  set 接口:
  1 无序
  2 不可重复
  3 没有索引,不能用 for 循环遍历。

4 Iterator迭代器

4.1 Iterator接口简介
iterator是为了实现对Java容器(collection)进行遍历功能的一个接口。在iterator实现了Iterator接口后,相当于把一个Collection容器的所有对象,做成一个线性表(List),而iterator本身是一个指针,开始时位于第一个元素之前。
4.2 常用方法

1 Boolean hasNext();
判断 iterator 内是否存在下1个元素,如果存在,返回true,否则返回false。(注意,这时上面的那个指针位置不变)
2 Object next();
返回 iterator 内下1个元素,同时上面的指针向后移动一位。
故,如果不断地循环执行next()方法,就可以遍历容器内所有的元素了。
3.oid remove();
删除 iterator 内指针的前1个元素,前提是至少执行过1次next();
(这个方法不建议使用,建议使用容器本身的romove 方法)

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值