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

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

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

排序等。

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# WPF 开发随想

    最近项目遇到切换窗口的时候偶尔出现闪屏的问题,前前后后花了两天的时间还是没有找到问题所在,一部分一部分的注释代码,看逻辑,开布局,还是一无所获. 最后还是他人的提醒下,直接不切换窗口,在同一个窗口中布 ...

  2. CF|codeforces 280C Game on Tree

    题目链接:戳我 大概题意:给一棵树,然后每次可以删除一个子树,问你期望多少次能把整棵树都删完? 概率和期望是个神仙..我不会 对于这个题,我们要有一个前置知识--期望的线性性,就是说总期望的值等于各个 ...

  3. [HNOI2010] 合唱队

    题目链接:https://www.luogu.org/problemnew/show/P3205 一个区间DP的题目. 设计状态为:\(dp1[i][j]\)表示当前区间为\([i,j]\),而且最后 ...

  4. python 使用跨平台文件锁

    #encoding=utf-8 print '中国' #使用跨平台文件锁 import os if os.name == 'nt': import win32con,win32file,pywinty ...

  5. Python操作配置文件configparser模块

    在实际的开发过程中,我们常有操作ini格式和conf格式配置文件的操作,Python为我们提供了configparser模块,方便我们对配置文件进行读写操作. config.ini配置文件内容如下: ...

  6. HashMap源码解析 非原创

    Stack过时的类,使用Deque重新实现. HashCode和equals的关系 HashCode为hash码,用于散列数组中的存储时HashMap进行散列映射. equals方法适用于比较两个对象 ...

  7. CSS动态定位

    $(document).ready(function(){ $('body').on('click', '#start_timer', function() { var laydate = $(&qu ...

  8. AutoCAD.Net 实现创建wipeout遮罩实体

    [CommandMethod("mywipeout")] public static void mywipeout() { // 获取当前文档和数据库 Document acDoc ...

  9. 如何使用MySQL Workbench创建数据库存储过程

    方法/步骤   1 打开My SQL Workbench 2 右击要启动的my SQL数据库连接,然后选择[connection  to  database] 3 此时进入数据库实例管理界面,下方显示 ...

  10. CH6201走廊泼水节

    题目链接: CH6201 [简化版题意]给定一棵N个节点的树,要求增加若干条边,把这棵树扩充为完全图,并满足图的唯一最小生成树仍然是这棵树.求增加的边的权值总和最小是多少. 输入格式 本题为多组数据~ ...