黑马程序员——JAVA集合框架

时间:2023-02-18 20:38:56

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

  JAVA 集合框架

概述

集合框架是为表示和操作集合而规定的一种统一的标准的体系结构,任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。接口:即表示集合的抽象数据类型,接口提供了让我们对集合中所表示的内容进行单独操作的可能。实现:也就是集合框架中接口的具体实现。实际它们就是那些可复用的数据结构。算法:在一个实现了某个集合框架中的接口的对象身上完成某种有用的计算的方法,这些算法通常是多态的,因为相同的方法可以在同一个接口被多个类实现时有不同的表现。事实上,算法是可复用的函数。集合框架的运用减少了设计辛劳、提高速度质量、解决了API缺点、调高了复用性,具备了这些优点,再经过程序员合理的利用,它就成为了计算机必不可少的强大工具。

集合类

我认为集合类就是实现了Collection接口,面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。集合是用于存储对象的容器,集合的长度是可变的,集合中不可以存储基本数据类型值。数组虽然也可以存储对象,但长度是固定的,而集合的长度是可变的;数组中可以存储基本数据类型,集合只能存储对象。集合类存放的都是对象的引用,而非对象本身,出于表达上的便利我们称集合中的对象就是指集合中对象的引用(reference)。集合类型主要有3种:set(集)、list(列表)和map(映射)。

list列表

list列表包括:Vector、Stack、LinkedList、ArrayList,列表的主要特征是其对象以线性方式存储,没有特定顺序,只有一个开头和一个结尾,当然,它与根本没有顺序的集是不同的。列表在数据结构中分别表现为:数组和向量、链表、堆栈、队列。所有的List中只能容纳单个不同类型的对象组成的表,而不是Key-Value键值对;所有的List中可以有相同的元素;所有的List中可以有null元素;基于Array的List(Vector,ArrayList)适合查询,而LinkedList(链表)适合添加,删除操作。

set(集)

集(set)是最简单的一种集合,包括HashSet和TreeSet,它的对象不按特定方式排序,只是简单的把对象加入集合中,就像往口袋里放东西。对集中成员的访问和操作是通过集中对象的引用进行的,所以集中不能有重复对象。集也有多种变体,可以实现排序等功能,如TreeSet,它把对象添加到集中的操作将变为按照某种比较规则将其插入到有序的对象序列中。它实现的是SortedSet接口,也就是加入了对象比较的方法。通过对集中的对象迭代,我们可以得到一个升序的对象集合。

map(映射)

map映射包括:HashTable、HashMap、WeakHashMap、TreeMap,映射与集或列表有明显区别,映射中每个项都是成对的。映射中存储的每个对象都有一个相关的关键字(Key)对象,关键字决定了 对象在映射中的存储位置,检索对象时必须提供相应的关键字,就像在字典中查单词一样。关键字应该是唯一的。关键字本身并不能决定对象的存储位置,它需要对过一种散列(hashing)技术来处理,产生一个被称作散列码(hash code)的整数值,散列码通常用作一个偏置量,该偏置量是相对于分配给映射的内存区域起始位置的,由此确定关键字/对象对的存储位置。理想情况 下,散列处理应该产生给定范围内均匀分布的值,而且每个关键字应得到不同的散列码。





------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------