iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >java集合继承关系图分享
  • 285
分享到

java集合继承关系图分享

java集合继承ava 2023-05-30 23:05:13 285人浏览 薄情痞子
摘要

  面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。  数组虽然也可以存储对象,但长度是固定的;集合长度是可变的,数组中可以存储基本数据类型,集合只能存储对象。  

  面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。

  数组虽然也可以存储对象,但长度是固定的;集合长度是可变的,数组中可以存储基本数据类型,集合只能存储对象。

  集合类的特点:集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。

 java集合继承关系图分享

  java集合继承关系图分享

  上述类图中,实线边框的是实现类,比如ArrayList,LinkedList,HashMap等,折线边框的是抽象类,比如AbstractCollection,AbstractList,AbstractMap等,而点线边框的是接口,比如Collection,Iterator,List等。

1、Iterator接口

  Iterator接口,这是一个用于遍历集合中元素的接口,主要包含hashNext(),next(),remove()三种方法。它的一个子接口LinkedIterator在它的基础上又添加了三种方法,分别是add(),previous(),hasPrevious()。也就是说如果是先Iterator接口,那么在遍历集合中元素的时候,只能往后遍历,被遍历后的元素不会在遍历到,通常无序集合实现的都是这个接口,比如HashSet,HashMap;而那些元素有序的集合,实现的一般都是LinkedIterator接口,实现这个接口的集合可以双向遍历,既可以通过next()访问下一个元素,又可以通过previous()访问前一个元素,比如ArrayList。

  抽象类的使用。如果要自己实现一个集合类,去实现那些抽象的接口会非常麻烦,工作量很大。这个时候就可以使用抽象类,这些抽象类中给我们提供了许多现成的实现,我们只需要根据自己的需求重写一些方法或者添加一些方法就可以实现自己需要的集合类,工作流昂大大降低。

2、Collection (集合的最大接口)继承关系

  ——List 可以存放重复的内容

  ——Set  不能存放重复的内容,所以的重复内容靠hashCode()和equals()两个方法区分

  ——Queue  队列接口

  ——SortedSet  可以对集合中的数据进行排序

  Collection定义了集合框架的共性功能。

java集合继承关系图分享

  add方法的参数类型是Object。以便于接收任意类型对象。

  集合中存储的都是对象的引用(地址)。

3、List的常用子类

  特有方法。凡是可以操作角标的方法都是该体系特有的方法。

java集合继承关系图分享

  ——ArrayList   线程安全,查询速度快

  ——Vector  线程安全,但速度慢,已被ArrayList替代

  ——LinkedList  链表结果,增删速度快

4、Set接口

  Set:元素是无序(存入和取出的顺序不一定一致),元素不可以重复。
  ——HashSet:底层数据结构是哈希表。是线程不安全的。不同步。
    HashSet是如何保证元素唯一性的呢?
    是通过元素的两个方法,hashCode和equals来完成。
    如果元素的HashCode值相同,才会判断equals是否为true。
    如果元素的hashcode值不同,不会调用equals。

    注意,对于判断元素是否存在,以及删除等操作,依赖的方法是元素的hashcode和equals方法。

  ——TreeSet:

    有序的存放:TreeSet  线程不安全,可以对Set集合中的元素进行排序

    通过compareTo或者compare方法来保证元素的唯一性,元素以二叉树的形式存放。

5、Object类

  在实际开发中经常会碰到区分同一对象的问题,一个完整的类最好覆写Object类的hashCode()、equals()、toString()三个方法。

6、集合的输出

  ——4种常见的输出方式

  ——Iterator: 迭代输出,使用最多的输出方式

  ——ListIterator: Iterator的子接口,专门用于输出List中的内容

  ——Enumeration

  ——foreach

  在迭代时,不可以通过集合对象的方法操作集合中的元素,因为会发生ConcurrentModificationException异常。所以,在迭代器时,只能用迭代器的放过操作元素,可是Iterator方法是有限的,只能对元素进行判断,取出,删除的操作,如果想要其他的操作如添加,修改等,就需要使用其子接口,ListIterator。该接口只能通过List集合的listIterator方法获取。

7、Map接口

  Correction、Set、List接口都属于单值的操作,而Map中的每个元素都使用key——>value的形式存储在集合中。

  Map集合:该集合存储键值对。一对一对往里存。而且要保证键的唯一性。

java集合继承关系图分享

8、Map接口的常用子类

  Map
  ——HashMap:底层是哈希表数据结构,允许使用 null 值和 null 键,该集合是不同步的。将hashtable替代,jdk1.2.效率高。
  ——TreeMap:底层是二叉树数据结构。线程不同步。可以用于给map集合中的键进行排序。

9、集合工具类

  Collections:集合框架的工具类。里面定义的都是静态方法。

  Collections和Collection有什么区别?
    Collection是集合框架中的一个顶层接口,它里面定义了单列集合的共性方法。
      它有两个常用的子接口,
      ——List:对元素都有定义索引。有序的。可以重复元素。
      ——Set:不可以重复元素。无序。

    Collections是集合框架中的一个工具类。该类中的方法都是静态的。
      提供的方法中有可以对list集合进行排序,二分查找等方法。
      通常常用的集合都是线程不安全的。因为要提高效率。
      如果多线程操作这些集合时,可以通过该工具类中的同步方法,将线程不安全的集合,转换成安全的。

10.比较  

  java集合继承关系图分享

11.总结:

  List:add/remove/get/set。

    1、ArrayList:其实就是数组,容量一大,频繁增删就是噩梦,适合随机查找;

    2、LinkedList:增加了push/[pop|remove|pull],其实都是removeFirst;

    3、Vector:历史遗留产物,同步版的ArrayList,代码和ArrayList太像;

    4、Stack:继承自Vector。Java里其实没有纯粹的Stack,可以自己实现,用组合的方式,封装一下LinkedList即可;

    5、Queue:本来是单独的一类,不过在SUN的JDK里就是用LinkedList来提供这个功能的,主要方法是offer/pull/peek,因此归到这里呢。

  Set:add/remove。可以用迭代器或者转换成list。

    1、HashSet:内部采用HashMap实现的;

    2、LinkedHashSet:采用LinkedHashMap实现;

    3、TreeSet:TreeMap。

  Map:put/get/remove。

    1、HashMap/HashTable:散列表,和ArrayList一样采用数组实现,超过初始容量会对性能有损耗;

    2、LinkedHashMap:继承自HashMap,但通过重写嵌套类HashMap.Entry实现了链表结构,同样有容量的问题;

    3、Properties:是继承的HashTable。

    顺便说一下Arrays.asList,这个方法的实现依赖一个嵌套类,这个嵌套类也叫ArrayList!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: java集合继承关系图分享

本文链接: https://www.lsjlt.com/news/221910.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java集合继承关系图分享
      面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。  数组虽然也可以存储对象,但长度是固定的;集合长度是可变的,数组中可以存储基本数据类型,集合只能存储对象。  ...
    99+
    2023-05-30
    java 集合继承 ava
  • Java集合继承体系详解
    Java的集合类是一种特别有用的工具,它可以用于存储数量不等的多个对象,并可以实现常用的数据结构,如栈、队列等。Java集合还可以用于板寸具有映射关系的关联数组。java集合就像是一个容器,我们可以把多个对象(实际上是对象的引用,习惯上叫对...
    99+
    2023-05-30
    java 集合继承 ava
  • Java集合类之组织结构和继承、实现关系的示例分析
    这篇文章主要为大家展示了“Java集合类之组织结构和继承、实现关系的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java集合类之组织结构和继承、实现关系的示例分析”这篇文章吧。Coll...
    99+
    2023-05-30
    java
  • Java中集合关系图的示例分析
    这篇文章主要介绍Java中集合关系图的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!下面是一张下载的Java中的集合类型的继承关系图,便于正确的理解和使用相应的集合类型。  几个面试常见问...
    99+
    2023-05-30
    java
  • Java Collections集合继承结构图_动力节点Java学院整理
    面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。数组虽然也可以存储对象,但长度是固定的;集合长度是可变的,数组中可以存储基本数据类型,集合只能存储对象。集合类的特点...
    99+
    2023-05-31
    java collections 集合类
  • Java 继承的继承体系:揭示超类和子类之间的关系
    Java 继承是一种面向对象编程特性,允许一个类(子类)继承另一个类(超类)的属性和方法。这为代码重用和多态性提供了强大的机制。 超类和子类关系 超类:也称为父类或基类,是提供属性和方法的原始类。 子类:也称为派生类或后代类,从超类继承...
    99+
    2024-03-12
    Java 继承体系
  • c++中继承关系的示例分析
    这篇文章给大家分享的是有关c++中继承关系的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1 什么是继承继承概念继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序...
    99+
    2023-06-20
  • PHP中类继承关系的示例分析
    这篇文章将为大家详细讲解有关PHP中类继承关系的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在PHP中,我时常会写一个类,类写了一个共用方法,然后让子类去继承就...
    99+
    2024-04-02
  • Java图文分析之继承内存布局
    目录一、初步了解继承的内存布局(1) 继承内存布局初探(2) Object 类(3) 同名的成员变量二、更复杂的继承的内存布局一、初步了解继承的内存布局 (1) 继承内存布局初探 看...
    99+
    2024-04-02
  • Java案例分享-集合嵌套
    一、需求:创建一个ArrayList集合,存储三个元素,每一个元素都是HashMap,每一个HashMap的键和值都是String,并遍历 分析: 1.创建一个ArrayList集合...
    99+
    2024-04-02
  • java系列之list集合分组
    文章目录 前言一、list是什么?二、list集合分组总结 前言 在Java编程中,List集合是一种常用的数据结构,用于存储一组元素。有时候,我们需要对List集合中的元素进行分组操作...
    99+
    2023-09-09
    java list
  • 深入浅析java中的继承关系类的加载顺序
    这篇文章将为大家详细讲解有关深入浅析java中的继承关系类的加载顺序,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。详解java中继承关系类加载顺序问题实例代码:public class So...
    99+
    2023-05-31
    java 继承关系类 ava
  • 利用Java怎么在继承关系下调用构造方法
    这篇文章将为大家详细讲解有关利用Java怎么在继承关系下调用构造方法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。详解 Java继承关系下的构造方法调用在Java中创建一个类的对象时,如果该...
    99+
    2023-05-31
    java ava
  • 从封装到继承,理解 Java 对象的结构和关系
    继承:代码重用和扩展 继承是一种创建新类(子类)的方法,它从现有类(父类)继承属性和方法。子类可以重用父类中的代码,并可以添加自己的附加功能。通过继承,类层次结构可以形成,允许代码重用、减少重复和简化代码组织。 多态性:统一接口,不同行为...
    99+
    2024-04-02
  • 图书管理借阅系统【Java简易版】Java三大特征封装,继承,多态的综合运用
    前言 前几篇文章讲到了Java的基本语法规则,今天我们就用前面学到的数组,类和对象,封装,继承,多态,抽象类,接口等做一个图书管理借阅系统。 文章目录 🥇1.分析图书管理系统要...
    99+
    2023-09-05
    java 开发语言 数据库
  • JAVA中集合体系的示例分析
    这篇文章给大家分享的是有关JAVA中集合体系的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、集合概况Java是一种面向对象语言,如果我们要针对多个对象进行操作,那么首先必要将多个对象进行保存起来之后,...
    99+
    2023-05-30
    java
  • java继承关系的类初始化和实例化顺序是怎样的
    这期内容当中小编将会给大家带来有关java继承关系的类初始化和实例化顺序是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。就像之前的一个评论.我们学习的是思路. 很多人都知道继承关系的类的初始化和实例...
    99+
    2023-06-17
  • 探索 Java 封装与继承的交互:打造对象关系的艺术
    封装:访问控制与数据保护 封装通过访问控制机制保护类的数据成员和方法,限制对它们的不当访问。Java 中的访问控制级别包括 public、protected、default 和 private。public 方法和变量可以从任何地方访问,...
    99+
    2024-04-02
  • Java集合Stream流操作的基本使用教程分享
    目录事前准备FilterSortedMapMatchCountReduce总结Java 中可以使用 java.util.Stream 对一个集合(实现了java.util.Colle...
    99+
    2023-02-21
    Java Stream流操作 Java Stream流
  • 关于Java Guava ImmutableMap不可变集合源码分析
    目录Java Guava不可变集合ImmutableMap的源码分析一、案例场景二、ImmutableMap源码分析Java Guava不可变集合ImmutableMap的源码分析 ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作