Java类集框架

类集框架简介

  从JDK1.2开始,Java中引入了类集开发框架,所谓的类集指的是一套动态对象数组的实现方案,在实际开发中,没有任何一项开发可以离开数组,但是传统的数组实现起来非常的繁琐,而且长度是其致命伤,正是因为长度问题,所以传统的数组是不可能大范围使用的,但是开发又离不开数组,所以最初就只能依靠一些数据结构来实现动态的数组处理,而其中最为重要的两个结构:链表、树,但是面对这些数据结构的实现,又不得不面对如下的一些问题:

  • 数据结构的代码实现困难,对于一般的开发者是无法进行使用的;
  • 对于链表或者二叉树当进行更新处理时的维护是非常麻烦的;
  • 对于链表或二叉树还需要尽可能保证其操作的性能;

  正是因为这样的原因,所以从JDK1.2开始,Java引入了类集,主要就是对常见的数据结构进行完整的实现包装,并提供了一系列的接口与实现子类,来帮助用户减少数据结构所带来的开发困难,但是最初的类集实现由Java本身的技术所限,所以对于数据的控制并不严格,全部采用了Object类型进行数据接收,而在JDK1.5后由于泛型将技术的推广,所以类集本身也得到了良好的改进,可以直接利用泛型来保存相同类型的数据,并且随着数据量的不断增加,从JDK1.8开始类集的实现算法也得到了良好的性能提升。
  在整个类集框架中,提供了如下几个核心接口:Collection、List、Set、Map、Iterator、Enumeration、Queue、ListIterator

Collection集合接口

  java.util.Collection是单值集合操作的最大的父接口,在该接口中定义了所有的单值数据的处理操作,这个接口中定义了如下的核心操作方法:

  • 向集合保存数据boolean add​(E e)
  • 将集合变为Iterator接口返回Iterator<E> iterator()
  • 追加一组数据:boolean addAll​(Collection<? extends E> c)
  • 清空集合,让根节点为空,同时执行GC处理:void clear()
  • 查询数据是否存在,需要equals()方法支持:boolean contains​(Object o)
  • 数据删除,需要equals()方法支持:boolean remove​(Object o)
  • 获取数据长度,最大值为Integer.MAX_VALUE:int size()
  • 将集合变为对象数组返回:Object[] toArray()

  在进行集合操作时,有两个方法最为常用:【增加】add()、【输出】iterator(),在JDK1.5版本之前,Collection只是一个独立的接口,但是从JDK1.5后,提供了Iterable父接口,并且在JDK1.8后针对于Iterable接口也得到了一些扩充。另外,在JDK1.2~JDK1.4的时代中,如果要进行集合的使用往往会直接操作Collection接口,但是从JDK1.5时代开始更多的情况下选择的都是Collection的两个子接口:允许重复的List子接口、不允许重复的Set子接口;

Collection接口
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Colletion接口 java.util.Collection是单集合操作的最大父接口, 在该接口中定义有所有的...
    Roct阅读 4,187评论 0 0
  • 在基础应用中,通常我们可以通过数组来保存一组具有相同属性的对象或者基本类型的数据,但使用数组的弊端在于其大小不可更...
    残月雨纷纷阅读 4,088评论 0 0
  • 四、集合框架 1:String类:字符串(重点) (1)多个字符组成的一个序列,叫字符串。生活中很多数据的描述都采...
    佘大将军阅读 4,206评论 0 2
  • 一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机...
    杀小贼阅读 7,144评论 0 4
  • 虽然面试的要求是要知道HashMap是怎么实现的,令人望而却步,但搞明白它怎么用,就成功了一小半。本文基于Mars...
    Sia_Coding阅读 4,312评论 1 7

友情链接更多精彩内容