zoukankan      html  css  js  c++  java
  • Java集合框架中的元素

      之前有一篇笔记,讲的是集合和泛型,这几天看Java集合中几个接口的文档,思绪非常混乱,直到看到Oracle的“The Collections Framwork”的页面,条理才清晰些,现在进行整理。

     

      一、为什么需要集合?

      应用程序中经常需要创建很多的对象来完成一定的工作,所以我们需要将这些一定数目的对象组织起来进行统一管理。

      对象数组能够满足我们,如果对象的数目是清晰有限且生命周期可知,那么使用对象数组来进行管理是非常简单和直观的。

      数组一旦创建,它的容量便固定了,在它的生命周期里再也无法被改变。但是程序总是在运行时才根据某些条件去创建新对象,在此之前,我们无法预知所需对象的数量,甚至会不知道确切的类型。那么如何在任意时刻管理任意数量的对象呢?集合便为此诞生了。

      ps:这两种组织和管理对象的方式分别为“array-based”、“collection-based”,在下面提到的集合接口中,有一个方法叫做“toArray()”,被称为两种方式间的桥梁。

     

      二、The Collections Framwork

      Java集合框架到底包含了什么,根据它的API规范做一个总结。

      1、Collection interfaces,即集合接口。

      实现这些接口是我们使用集合的主要方式。它有两个根接口,Collection和Map。

      至于接口的层次结构,这里不再赘述

     

      2、 implementations,即接口实现类

      是对集合接口的各种实现。

      可以看到API规范中列举了多种类型的实现类,其中最基础也最重要的是General-purpose implementations,即通用实现类,里面包含了我们常用的一些数据结构。下表就是常用的接口和它们的常用的实现类:

      

      至于其他的那些 implementations,等有需要了再看,知道实现类种类很多就行。

      

      3、Algorithms ,算法

      提供了一些基本的算法实现。

      这些算法的静态方法都在一个名叫“Collections”的类中(java.util.Collections)。

     

      4、Infrastructure,基础设施

      这个在我看的书本上并没有提,看它的类型就很清楚它的作用了。它里面有4种“基础设施”:

    • Iterators:Iterator、Listiterator
    • Ordering:Comparable、Comparator
    • Runtime exceptions:(两个类)UnsupportedOperationException 、ConcurrentModificationException 
    • Performance:RandomAccess

     

      5、Array Utilities

      里面就包含了Arrays类(java.util.Arrays),因为需要用到很多其中的静态方法!

      附一张书本上的“集合框架全景图”:·

     

     

  • 相关阅读:
    数据结构
    java web
    C++
    SQL(结构化查询语言)
    网站协议
    python
    爬虫
    select 多选
    List 去除重复数据的五种方式
    oracle锁表SID查询
  • 原文地址:https://www.cnblogs.com/bigbigbigo/p/8571305.html
Copyright © 2011-2022 走看看