一:接口:即表示集合的抽象数据类型。

实现:即集合框架中接口的实现。

算法:在一个实现了某个集合框架中的接口的对象身上完成某种有用的计算的方法,例如查找、

排序等。

Collection 接口存储一组不唯一,无序的对象

List 接口存储一组不唯一,有序(插入顺序)的对象

Set 接口存储一组唯一,无序的对象

Map接口存储一组键值对象,提供key到value的映射

二、List接口

List接口的常用类有ArrayList和LinkedList。它们都可以容纳所有类型的对象,包括

Null,允许重复,并且都保证元素的存储顺序。

ArrayList实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高

LinkedList采用链表存储方式。插入、删除元素时效率比较高。

1.List接口常用方法

方法名

说明

boolean add(Object o)

在列表的末尾顺序添加元素,起始索引位置从0开始

void add(int index,Object o)

在指定的索引位置添加元素。索引位置必须介于0和列表中元

素个数之间

int size()

返回列表中的元素个数

Object get(int index)

回指定索引位置处的元素。取出的元素是Object类型,使用前需要进行强制类型转换

boolean contains(Object o)

判断列表中是否存在指定元素

boolean remove(Object o)

从列表中删除元素

Object remove(int index)

从列表中删除指定位置元素,起始索引位置从0开始

2.LinkedList的特殊方法

方法名

说明

void  addFirst(Object o)

在列表的首部添加元素

void  addLast(Object o)

在列表的末尾添加元素

Object      getFirst()

返回列表中的第一个元素

Object      getLast()

返回列表中的最后一个元素

Object      removeFirst()

删除并返回列表中的第一个元素

Object      removeLast()   删除并返回列表中的最后一个元素

Map的常用方法

方法名     说    明

Object put(Object key, Object val)   以“键-值对”的方式进行存储

Object get (Object key)    根据键返回相关联的值,如果不存在指定的键,返回null

Object remove (Object key)     删除由指定的键映射的“键-值对”

int size()   返回元素个数

Set keySet ()     返回键的集合

Collection values ()  返回值的集合

boolean    containsKey (Object key) 如果存在由指定的键映射的“键-值对”,返回true

Hashtable和HashMap的异同P190

三、迭代器Iterator

所有集合接口和类都没有提供相应遍历方法,而是由Iterator实现集合遍历

Collection 接口的iterate()方法返回一个Iterator,然后通过Iterator接口的两个方法可实现

遍历

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

2.Object next(): 返回要访问的下一个元素

四、泛型集合

把任何类型对象通过add(Object obj) 放入List中,认为只是Object类型

通过get(int index) 取出List中元素时必须进行强制类型转换,繁琐而且容易出现异常

使用Map的put(Object key, Object value)和get (Object key)存取对象时存在同样问题

使用Iterator的next()方法获取元素时存在同样问题

第六章使用java实现面向对象-集合框架的更多相关文章

  1. 菜鸟日记之 java中的集合框架

    java中的集合框架图 如图所示:java中的集合分为两种Collection和Map两种接口 可分为Collection是单列集合和Map的双列集合 Collection单列集合:继承了Iterat ...

  2. Java基础--说集合框架

    版权所有,转载注明出处. 1,Java中,集合是什么?为什么会出现? 根据数学的定义,集合是一个元素或多个元素的构成,即集合一个装有元素的容器. Java中已经有数组这一装有元素的容器,为什么还要新建 ...

  3. Java中的集合框架(上)

    Java中的集合框架概述 集合的概念: Java中的集合类:是一种工具类,就像是容器,存储任意数量的具有共同属性的对象. 集合的作用: 1.在类的内部,对数据进行组织: 2.简单的快速的搜索大数据量的 ...

  4. 第51节:Java当中的集合框架Map

    简书作者:达叔小生 Java当中的集合框架Map 01 Map提供了三个集合视图: 键集 值集 键-值 映射集 public String getWeek(int num){ if(num<0 ...

  5. 第48节:Java当中的集合框架

    Java当中的集合框架 01 在我们班里有50位同学,就有50位对象. // 简书作者:达叔小生 Student[] stus = new Student[20]; 结果来了一位插班生,该同学因为觉得 ...

  6. Java中的集合框架-Collections和Arrays

    上一篇<Java中的集合框架-Map>把集合框架中的键值对容器Map中常用的知识记录了一下,本节记录一下集合框架的两个工具类Collections和Arrays 一,Collections ...

  7. Java中的集合框架-Map

    前两篇<Java中的集合框架-Commection(一)>和<Java中的集合框架-Commection(二)>把集合框架中的Collection开发常用知识点作了一下记录,从 ...

  8. Java中的集合框架-Collection(二)

    上一篇<Java中的集合框架-Collection(一)>把Java集合框架中的Collection与List及其常用实现类的功能大致记录了一下,本篇接着记录Collection的另一个子 ...

  9. Java当中的集合框架Map

    简书作者:达叔小生 Java当中的集合框架Map 01 Map提供了三个集合视图: 键集 值集 键-值 映射集 public String getWeek(int num){ if(num<0 ...

随机推荐

  1. C# 等待框

    今天发现dev控件自带了等待框,调用方便,而且不会阻塞主线程. 拉一个窗体,界面上放两个按钮,显示等待框,隐藏. <Window x:Class="WaitDialogTest.Mai ...

  2. SCVMM 安装

    1.所有的物理机必须在域环境下 2.安装VMM和SQL使用的域账号尽量相同,并且唯一,尽量与管理hyper v主机使用的账号不相同

  3. javascript实现俄罗斯方块游戏

    观摩一下<编程之美>:“程序虽然很难写,却很美妙.要想把程序写好,需要写好一定的基础知识,包括编程语言.数据结构与算法.程序写得好,需要缜密的逻辑思维能力和良好的梳理基础,而且熟悉编程环境 ...

  4. 【QTP专题】02_时间同步点问题

    一.什么是同步点 同步点是指在一个测试过程中,指示QuickTest等待应用程序中某个特定过程运行完成以后再运行下一步操作.Waits until the specified object prope ...

  5. SDOI2010粟粟的书架

    题目传送:https://www.luogu.org/problemnew/show/P2468 这是一个二合一的题目,前50% \(n!=1\)的分数中,我们考虑用动态规划来做. 设\(sum[i] ...

  6. WEB新手之serialize’s revenge

    最后一道题. 这道题提示比较少,一点也不友好.F12也没有什么线索.无奈之下用御剑扫下后台,发现了一个叫robots的txt文件. 打开robots.txt文件,可以得到一段代码,如下图所示. 审查代 ...

  7. kvm虚拟机扩展磁盘空间

    kvm虚拟机磁盘空间扩展与xen虚拟机磁盘空间扩展思路一致.原因在于xen/kvm默认的虚拟机磁盘格式为raw,所以方式可以通用. raw磁盘格式扩展思路如下 (1) 新添加一块raw格式的磁盘加入到 ...

  8. MySql数据库,对varchar类型字段str进行where str=0条件查询时,查询结果是什么

    在用MySQL查询数据的时候,遇到了一个奇怪的问题.用一个varchar类型的字符串str,作为条件与0比较时,会查str不为0的数据. 比如:SELECT id, idnumber from hr_ ...

  9. 可变参数中size_t遇见的问题

    在修改php扩展Trie时,出现了一个小bug PHP_FUNCTION(trie_filter_load) { Trie *trie; char *path; int path_len; if (z ...

  10. luogu3292 [SCOI2016]幸运数字

    link 题目大意:给一棵树,每个点有个权值,N<=2万 20万次询问,每次询问查询某两个点路径上所有点的权值xjb异或的最大值 首先看到xjb异或就可以断定是线性基了 并且由于这是树上问题我们 ...