zoukankan      html  css  js  c++  java
  • 7.1 Java集合概念

    在编程中常常需要集中存放多个数据,可以使用数组来保存多个对象,但是数组的长度一旦初始化指定后,不能进行改变;而且数组无法保存具有映射关系的数据:语文——88,数学——100。

    为了保存数量不确定的数据,以及保存具有映射关系的数据(也称为关联数组),Java提供了集合类。集合类主要用于保存、盛装其他数据,因此集合类也被称为容器类。所有集合类都位于java.util包下,后来为了处理多线程环境下的并发安全问题,Java 5还在java.util.cincurrent包下提供了一些多线程支持的集合类。

    集合类和数组不一样,数组元素既可以基本类型的值,也可是对象(实际上是引用类型变量)。

    Java集合类主要由两个接口派生出来:Collection和Map。Collection和Map是Java集合框架的根接口,这两个接口又包含了一些子接口或实现类。 

    下图是Collection接口、子接口以及实现类的继承树:

     其中粗线圈出的Set和List接口是Collection接口派生出的两个子接口,它们分别代表了无序集合和有序集合;Queue是Java提供的队列实现,有点类似于List。

    下图是Map体系的继承树,所有Map实现类用于保存具有映射关系的数据

     在Map显示的众多实现类,这些类有一个相同的功能特征:Map保存的每项数据都是key-value对。Map里的key是不可重复的,key用于标记集合中的每项数据,如果需要查询Map中的数据,总是通过Map的key来获取。

    对于上面两个图粗线标出的四个接口,可以把Java所有集合分成3项,其中Set集合类似一个罐子,把一个对象添加到Set集合时,Set无法记住添加这个元素的顺序,所以Set里的元素是不可重复的;List集合像一个数组,可以记住每次添加元素的顺序、且List长度可变;Map集合也像一个罐子,只是它里面的每项数据都是由两个值组成。

  • 相关阅读:
    HDU4452——模拟——Running Rabbits
    URAL1711——模拟——Code Names
    URAL1721——匈牙利算法——Two Sides of the Same Coin
    Codeforces Round #FF (Div. 1)——A贪心——DZY Loves Sequences
    Codeforces Round #326 (Div. 2)
    URAL 7077 Little Zu Chongzhi's Triangles(14广州I)
    Codeforces Round #325 (Div. 2)
    位运算 UEST 84 Binary Operations
    LCA UESTC 92 Journey
    Codeforces Round #324 (Div. 2)
  • 原文地址:https://www.cnblogs.com/weststar/p/12491059.html
Copyright © 2011-2022 走看看