zoukankan      html  css  js  c++  java
  • java编程思想-java集合总结-基本概念

    1、java 容器类类库的用途是“保存对象”,并将其划分为两个不同的概念:

    1)Collection。一个独立元素的序列,这些元素都服从一条或多条规则。List 必须按照插入的顺序保存元素,而Set不能有重复元素。Queue 按照排队规则来确定对象产生的顺序(通常与他们被插入的顺序相同)。

    2)Map。一组成对的“键值对”对象,允许使用键来查找值。ArrayList允许使用数字来查找值。因此在某种意义上讲,他将数字和对象关联在了一起。映射表允许我们使用另一个对象来查找某个对象,他也被称为“关联数组”,因为他将某些对象与另外一些对象关联在了一起;或者被称为“字典”,因为你可以使用键对象来查找值对象,就像在字典中使用单词来定义一样。Map是强大的编程工具。

    2、Java 提供了大量持有对象的方式:

    1)数组将数字与对象联系起来。他保存类型明确的对象,查询对象时,不需要对结果进行类型转换。他可以是多维的,可以保存基本类型的数据。但是,数组一旦生成,其容量就不能改变。

    2)Collection 保存单一的元素,而 Map 保存相关联的键值对。有了 Java 的泛型,你就可以制定容器中存放的对象类型,因此你就不会将错误类型的对象放置到容器中,并且在从容器中获取元素时,不必进行类型转换。各种 Collection 和各种 Map 都可以在你向其中添加更多的元素时,自动调整其尺寸。容器不能持有基本类型,但是自动包装机制会仔细的执行基本类型到容器中所持有的包装器类型之间的双向转换。

    3)像数组一样,List 也建立数字索引与对象的关联,因此,数组和 List 都是排好序的容器。List 能够自动扩充容量。

    4)如果要进行大量的随机访问,就使用 ArrayList;如果要经常从表中间插入或删除元素,则应该使用 LinkedList。

    5)各种 Queue 以及栈的行为,由 linkedList 提供支持。

    6)Map 是一种将对象(而非数字)与对象xiang'guan'lian相关联的设计。HashMap 设计用来快速访问,而 TreeMap 保持“键”始终处于排序状态,所以没有 Hashmap快。LinkedHashMap 保持元素插入的顺序,但是也通过散列提供了快速访问能力。

    7)Set 不接受重复元素。HashSet提供最快的查询速度,而 TreeSet 保持元素处于排序状态。LinkedHashSet 以插入顺序保存元素。

    8)新程序中不应该使用过时的 Vector、HashTable 和 Stack。

  • 相关阅读:
    POJ 1426 Find The Multiple(数论——中国同余定理)
    POJ 2253 Frogger(Dijkstra变形——最短路径最大权值)
    POJ 3790 最短路径问题(Dijkstra变形——最短路径双重最小权值)
    POJ 3278 Catch That Cow(模板——BFS)
    HDU 1071 The area
    HDU 1213 How Many Tables(模板——并查集)
    POJ 1611 The Suspects
    light oj 1214 Large Division
    POJ 1258 Agri-Net(Prim算法求解MST)
    POJ 2387 Til the Cows Come Home(模板——Dijkstra算法)
  • 原文地址:https://www.cnblogs.com/f-zhao/p/6096506.html
Copyright © 2011-2022 走看看