`
yangwn
  • 浏览: 78050 次
  • 性别: Icon_minigender_2
  • 来自: 大连
社区版块
存档分类
最新评论
  • icewubin: kimmking 写道icewubin 写道Dollyn 写道 ...
    Java
  • kimmking: icewubin 写道Dollyn 写道我十分怀疑最后一条,很 ...
    Java
  • beneo: 完全忽略了一個好的JVM的優化能力 難道java是C編譯器么 ...
    Java
  • icewubin: Dollyn 写道我十分怀疑最后一条,很多编译器都会自动做类似 ...
    Java
  • Dollyn: 我十分怀疑最后一条,很多编译器都会自动做类似优化吧(不知道JD ...
    Java

全面接触Java集合框架一二

    博客分类:
  • JAVA
阅读更多

 Java平台提供了一个全新的集合框架。“集合框架”主要由一组用来操作对象的接口组成。不同接口描述一组不同数据类型。


Java 2集合框架图

  集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。

  抽象类:5个抽象类(长虚线表示),对集合接口的部分实现。可扩展为自定义集合类。

  实现类:8个实现类(实线表示),对接口的具体实现。

  在很大程度上,一旦您理解了接口,您就理解了框架。虽然您总要创建接口特定的实现,但访问实际集合的方法应该限制在接口方法的使用上;因此,允许您更改基本的数据结构而不必改变其它代码。

  · Collection 接口是一组允许重复的对象。

  · Set 接口继承 Collection,但不允许重复,使用自己内部的一个排列机制。

  · List 接口继承 Collection,允许重复,以元素安插的次序来放置元素,不会重新排列。

  · Map接口是一组成对的键-值对象,即所持有的是key-value pairs。Map中不能有重复的key。拥有自己的内部排列机制。

  · 容器中的元素类型都为Object。从容器取得元素时,必须把它转换成原来的类型。


  Java 2简化集合框架图


集合接口

  1.Collection 接口

  用于表示任何对象或元素组。想要尽可能以常规方式处理一组元素时,就使用这一接口。

 


  (1) 单元素添加、删除操作:

   boolean add(Object o):将对象添加给集合

   boolean remove(Object o): 如果集合中有与o相匹配的对象,则删除对象o

  (2) 查询操作:

   int size() :返回当前集合中元素的数量

   boolean isEmpty() :判断集合中是否有任何元素

   boolean contains(Object o) :查找集合中是否含有对象o

   Iterator iterator() :返回一个迭代器,用来访问集合中的各个元素

  (3) 组操作 :作用于元素组或整个集合

   boolean containsAll(Collection c): 查找集合中是否含有集合c 中所有元素

   boolean addAll(Collection c) : 将集合c 中所有元素添加给该集合

   void clear(): 删除集合中所有元素

   void removeAll(Collection c) : 从集合中删除集合c 中的所有元素

   void retainAll(Collection c) : 从集合中删除集合c 中不包含的元素

  (4) Collection转换为Object数组 :

   Object[] toArray() :返回一个内含集合所有元素的array

   Object[] toArray(Object[] a) :返回一个内含集合所有元素的array。运行期返回的array和参数a的型别相同,需要转换为正确型别。

  此外,您还可以把集合转换成其它任何其它的对象数组。但是,您不能直接把集合转换成基本数据类型的数组,因为集合必须持有对象。

  “斜体接口方法是可选的。因为一个接口实现必须实现所有接口方法,调用程序就需要一种途径来知道一个可选的方法是不是不受支持。如果调用一种可选方法时,一个 UnsupportedOperationException 被抛出,则操作失败,因为方法不受支持。此异常类继承 RuntimeException 类,避免了将所有集合操作放入 try-catch 块。”

  Collection不提供get()方法。如果要遍历Collectin中的元素,就必须用Iterator。

  1.1.AbstractCollection 抽象类

  AbstractCollection 类提供具体“集合框架”类的基本功能。虽然您可以自行实现 Collection 接口的所有方法,但是,除了iterator()和size()方法在恰当的子类中实现以外,其它所有方法都由 AbstractCollection 类来提供实现。如果子类不覆盖某些方法,可选的如add()之类的方法将抛出异常。

  1.2.Iterator 接口

  Collection 接口的iterator()方法返回一个 Iterator。Iterator接口方法能以迭代方式逐个访问集合中各个元素,并安全的从Collection 中除去适当的元素。


  (1) boolean hasNext(): 判断是否存在另一个可访问的元素

    Object next(): 返回要访问的下一个元素。如果到达集合结尾,则抛出NoSuchElementException异常。

  (2) void remove(): 删除上次访问返回的对象。本方法必须紧跟在一个元素的访问后执行。如果上次访问后集合已被修改,方法将抛出IllegalStateException。

  “Iterator中删除操作对底层Collection也有影响。”

  迭代器是 故障快速修复(fail-fast)的。这意味着,当另一个线程修改底层集合的时候,如果您正在用 Iterator 遍历集合,那么,Iterator就会抛出 ConcurrentModificationException (另一种 RuntimeException异常)异常并立刻失败。

分享到:
评论

相关推荐

    全面接触java集合框架(word版)

    Java集合框架是Java编程语言中的一个核心特性,它为存储、管理和操作对象提供了一套统一的接口和实现。这个框架包括各种接口、类和算法,使得开发者能够更加高效地处理对象集合,而无需关注底层数据结构的实现细节。...

    全面接触Java集合框架

    Java集合框架是Java编程语言中不可或缺的一部分,它提供了一种高效、灵活的方式来存储和操作数据。这个框架包括了各种接口和类,它们为开发者提供了多种数据结构,如数组、链表、队列、堆栈、映射等。下面将详细探讨...

    java集合框架

    全面接触Java集合框架意味着要深入理解其核心接口、实现类以及它们在实际编程中的应用。 1. **接口概述**: - `Collection`:集合框架的顶级接口,所有单列集合(如List、Set)的父接口。 - `List`:有序、可重复...

    Java集合知识体系.zip

    Java集合框架是Java编程语言中的核心部分,它提供了一种高效、灵活的数据存储和操作机制。这个知识体系包括了各种接口和类,如List、Set、Map等,以及它们的实现类,如ArrayList、LinkedList、HashSet、HashMap等。...

    学习java必看的书籍

    - 全面介绍了Java集合框架的各种组件,包括List、Set、Map等。 - 通过实例讲解了集合类的最佳使用方法。 - 探讨了Java集合框架背后的设计原则和模式,如迭代器模式等。 - **适用人群**:本书适用于那些希望深入...

    java学习笔记比较全面

    随着学习的深入,还会接触到类、对象、异常处理、IO流、集合框架、多线程、网络编程等更复杂的话题。对于Java的学习,实践是关键,通过编写实际的代码来加深理解,才能更好地掌握这门强大的编程语言。

    JAVA_完完全全的中文版Java API_Sun公司官方出版

    例如,`java.util`包中的ArrayList和HashMap是Java集合框架中的重要组成部分,它们分别提供了动态数组和键值对的存储功能;`java.io`包提供了文件读写、数据流处理的能力;`java.net`包则支持网络通信,如Socket和...

    Java 2全方位学习

    总的来说,《Java 2全方位学习》是一本全面覆盖Java基础与进阶知识的教材,无论你是刚接触Java的新手,还是希望巩固提高的开发者,都能从中受益。通过阅读和实践,你可以逐步掌握这个强大而广泛应用的编程语言,为你...

    java优秀教程大集合

    这个"java优秀教程大集合"压缩包提供了一系列资源,旨在帮助初学者和有经验的开发者深入理解和掌握Java语言及其相关技术。 首先,我们看到有"html.chm"和"JavaScript高级程序设计.pdf",这两份资料说明了本集合不仅...

    北大青鸟Java练习题

    练习题的类型多样,覆盖了Java编程的多个重要方面,如基础语法、面向对象编程、数据结构、算法、异常处理、多线程、集合框架、IO流、网络编程等。这些内容不仅是Java学习的核心,也是企业对求职者技术能力的基本要求...

    java_java学习课本_

    5. **集合框架**:Java集合框架是存储和管理对象的重要工具,包括List、Set、Queue和Map接口,以及ArrayList、LinkedList、HashSet、HashMap等实现类。学习者需要掌握它们的特性和用法。 6. **多线程**:Java内置对...

    自学资料,自学练习、 JAVA-SE-学习 全面打基础练习和文档集合.合集准备 Java学习资料

    4. **集合框架**:Java集合框架包括接口(如List、Set、Queue)和实现类(如ArrayList、LinkedList、HashSet、HashMap等),学习者应掌握它们的使用和选择原则。 5. **输入输出流**:I/O流用于处理数据的读写,包括...

    java程序设计例题全集

    标题中的“java程序设计例题全集”意味着这份资料包含了大量关于Java编程的实践题目,这些题目可能包括基础语法、类与对象、异常处理、集合框架、多线程、网络编程等多个方面,是学习和巩固Java编程技能的理想资源。...

    Java学习资料全套百度云网盘(基础-web-框架)

    此外,文件操作、异常处理、集合框架(如ArrayList、LinkedList、HashMap等)以及IO流也是Java基础学习的重要组成部分。Oracle是Java的主要提供商,其JDK(Java Development Kit)包含了Java运行环境和开发工具,...

    java从入门到精通视频教程(全94讲)学习笔记整理(齐全).docx

    总的来说,从“Java从入门到精通视频教程(全94讲)学习笔记整理”中,我们可以看到一个全面的Java学习路线,从基础语法、面向对象编程,到高级特性、实战项目,都是成为一名合格Java开发者不可或缺的部分。...

    java全套学习讲义java全套学习讲义java全套学习讲义 javase + 前端 + ssm + spring全家桶

    本套学习讲义涵盖了Java的基础到高级,结合前端技术、SSM框架以及Spring全家桶,旨在提供一个全面的Java开发学习路径。 首先,让我们从Java基础(JavaSE)开始。JavaSE,即Java Standard Edition,是Java的核心部分...

    JAVA电子书

    【Lesson10】可能是关于Java的高级主题,比如多线程、并发编程、同步机制,或者是Java集合框架的深入研究,例如Map接口和并发容器如ConcurrentHashMap。 通过这个【JAVA电子书】,读者不仅能够学习到Java语言的基础...

    java学习源码(很全面)

    3. **集合框架**:Java集合框架是管理和操作对象数组的工具,包括List、Set和Map接口,以及ArrayList、LinkedList、HashSet、HashMap等实现类。理解它们之间的区别和使用场景,以及迭代器、泛型、并发集合等高级特性...

    java环境搭建和学习,基础知识点,学习路线,学习路径,集合,并发,框架,jvm

    Java集合框架是存储和管理对象的重要工具,包括List、Set、Map接口及其实现类,如ArrayList、LinkedList、HashSet、HashMap等。了解它们的特性和适用场景,可以有效优化代码性能。 并发是Java的强项,Java提供了...

    java电子课件,java

    Java集合框架则提供了大量的容器类,如ArrayList、LinkedList、HashSet、HashMap等,用于存储和操作对象。 线程编程是Java的一大特色,它使得程序可以同时执行多个任务。通过理解和使用Thread类以及Runnable接口,...

Global site tag (gtag.js) - Google Analytics