博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA-初步认识-常用对象API(集合框架-体系共性功能)
阅读量:5014 次
发布时间:2019-06-12

本文共 1906 字,大约阅读时间需要 6 分钟。

一.

集合是个容器,用来存储对象的。当我们存储的对象数目变多的时候,会带来一些问题。

对象在集合里面装的时候,到底是如何进行存储的?有人说直接往里扔就是了,要注意,对于对象而言,不止集合这么一种容器。

对于对象的存储方式,每一个集合都有自己独特的定义,是根据某些需求而定的。

举例子来谈:用水杯泡茶,必须有过滤网,不然喝茶会有茶叶,如果只是喝白开水那么就不需要过滤网。

这说明容器自身都有其特定的结构,这种结构我们称之为数据结构,容器里面存储的就是数据。

数据到底按照什么样的方式来进行存放呢?我们称之为数据的结构。每一个容器的结构其内部都不太一样。

一堆容器,高矮胖瘦都不相同,都能去装东西,只不过它们内部都有其自身的特点。依据不同的需求,使用不同的容器。

在众多不同的容器中,有一部分容器有共性。这样就不断地进行抽取,部分抽取,不断向上,形成体系。(猫,狗...一下子抽成动物,太快了)

集合框架体系,里面的内容有很多。这么庞大的体系并不可怕,学习的方法是:看顶层,用底层。

顶层定义着集合体系中所有共性的东西,想使用集合体系,只要把顶层的功能搞清楚,体系中的任意成员都可以使用。

共性在集合中是存在的,叫做Collection,这就是向上不断抽取形成的顶层。

这个顶层里面到底具备什么样的方法呢?如果要判断一个容器具备什么样的方法,按照面向对象的思考方式,叫做这容器有什么功能可以方便于我的指挥?或者说这个对象有什么样的功能方便我的指挥。容器的最基本功能就是装东西,删东西。

现在就看一下Collection有什么功能。

二.

现在我们学习集合体系,它不在java.lang包中了。java.lang包是java语言核心包,现在我们用的是一个工具,这是工具包中的内容,叫做java.util包。

Collection既然是作为接口出现,那么就意味着里面内容全是抽象的。接下来,学习一下Collection这个共性接口当中,都定义了哪些方法。将Collection学完,集合的使用就不成问题了。

1. 添加方法

add方法就是添加对象,E是指什么?现在将E当成object(能接受任意对象,肯定是object类型,所以这里说E就是Object)。1.4版本里面写的就是object,1.5有了新的特性,所以产生了变化。现在先不介绍新特性,先学习集合的使用,然后再学习集合的使用。

add添加方法,给我个元素添加到集合当中,返回值类型是boolean。添加成功就为true,添加失败就为false。

addAll方法是将一个集合中的所有元素加到另一个集合中,添加的不是一个,有可能是一堆。

其实写法就是addAll(Collection coll); 

2. 删除方法

删除方法无外乎两种,要么是delete,要么是remove。

添加和删除的返回值类型都是boolean,这表明这些动作并不是简单的操作,可能涉及很多东西。

removeAll是删除一堆,应该不是全部删除。如果是全部删除,就不是remove方法,是clear方法,是清空的意思。

clear将集合的所有元素都删掉,但是集合还在。

3. 判断

boolean类型的contans方法,判断一个元素,或者一堆元素是否在集合中。(我会将判断和查找搞混淆)

boolean containsAll(collection coll)判断一个集合中是否有一堆元素,需要将被判断的元素堆先做成一个集合么?不然传递的参数列表怎么是一个集合?

集合的判断还可以用hashcode,equals。

isEmpty方法是判断是否有元素,这个方法和其他方法会有冲突。

4. 获取

获取方法有这么几种,一个是获取集合中元素的个数(或者说长度),集合中有几个元素,集合自己最清楚。能获取长度的方法,无外乎length和size。如果size为0,就是没有元素。isEmpty方法就为true,size要是有元素,isEmpty就为false。集合用size判断,但是封装成了isEmpty来用。

获取结合元素的iterator方法,就是迭代器。迭代器就是专门用于取出集合中元素的方式,

迭代器的返回值非常特殊,返回的并不是取出的元素,而是一个迭代器对象Interator。

5. 其他方法

(通过分类的方式来介绍类中的许多方法)

ratainAll方法和removeAll差不多,单独列出来讲是因为,这个方法是取交集,就是两个集合的交集。

toArray是将集合变成数组,

 

转载于:https://www.cnblogs.com/wsw-bk/p/8142666.html

你可能感兴趣的文章
ch02 fundamental definition 01
查看>>
JSON解析
查看>>
Position is everything?(css定位学习的一些心得)(一)
查看>>
如何提高编程水平
查看>>
Jquery Uploadify3.21.与2.1版本 使用中存在的问题--记录三
查看>>
Linux查看进程的内存占用情况 分类: ubuntu ...
查看>>
[BZOJ 2818]Gcd
查看>>
FORM值传递与地址传递
查看>>
(译)yaml快速教程
查看>>
C:大数相加
查看>>
160. Intersection of Two Linked Lists
查看>>
人生苦短,我用python-- Day11
查看>>
JAVA Bean
查看>>
ehcache memcache redis 三大缓存男高音_转
查看>>
curd_3
查看>>
百度地图API示例之设置地图显示范围
查看>>
Java构造方法、重载及垃圾回收
查看>>
.Net Core AES加密解密
查看>>
Spring Quartz实现任务调度
查看>>
python | 桶排序、冒泡排序、选择排序、去重
查看>>