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

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

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

排序等。

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. vm虚拟机Kali无法拖拽文件解决办法

    vm虚拟机Kali无法拖拽文件解决办法 apt-get updateapt-get install open-vm-tools-desktop fusereboot

  2. vue.js 知识点(二)

    关于vue看到有很多的知识点和react有很多相近的地方,比如说路由还有一些简单的运用,但是又有一些不同,比如格式.还有写法的一些不同! 所以在这里我总结一下关于vue 关于路由的一些运用: 路由: ...

  3. 【CF453D】 Little Pony and Elements of Harmony(FWT)

    题面 传送门 设\(a\)的递推公式为 \[a_i=\sum_ja_jb[count(i\oplus j)]\] 其中\(\oplus\)为异或,\(count(i)\)表示\(i\)的二进制中\(1 ...

  4. mysqli扩展库应用---程序范例

    通过mysqli扩展库对用户表user1进行增删改查操作,用户表user1结构如下: 1,建立数据库操作类库mysqliTool.class.php,代码如下: <?php class mysq ...

  5. [AIR] AS3读取本地文件夹中的文件

    import flash.filesystem.File; import flash.net.URLLoader; //var dir:File = File.desktopDirectory; // ...

  6. Tomcat安装与使用

    主要讲解Tomcat的 安装与使用,讲解ubuntu版本和windows. 下载与安装: 1)到apache官网.www.apache.org http://jakarta.apache.org(产品 ...

  7. jdbc连接oracle的url的三种写法

    JDBC 链接oracle的三种URL写法 1.普通SID方式     jdbc:oracle:thin:username/password@x.x.x.1:1521:SID 2.普通ServerNa ...

  8. 创建djangoapp

    1.python3 manage.py startapp goods 2.startapp users 3.启动django服务器 # make new migrationspython3 manag ...

  9. 使用Appium-Desktop捕获APP元素控件实现自动化控制

    使用Appium捕获APP的元素控件 实现自动化控制 我是用的是华为P20手机进行测试,为了映射出它的adb端口,需再去官网下载安装一个华为手机助手,然后将手机调成开发者模式,连接时选择传输文件模式. ...

  10. python web开发小结

    书籍 <python基础教程> <流畅的python> web框架 flask django tornado ORM sqlalchemy orator 消息队列 celery ...