第七章

集合
集合可以理解为一个自动增加长短的数组

image.png

集合常用类图
通过UML通过统一建模语言(将类跟类之间的关系使用图形见的关系表现出来)
image.png

集合组成图
list里面存和取顺序一致
set里面存和取是无序的
queue里面的数据先进先出
{list接口不仅实现了list接口也实现了queue接口}
数组与集合之间的区别:
1.数组既可以存储基本数据类型,也可以存储引用数据类型 基本数据类型存储的是值,引用数据类型存储的是地址值
集合只能存储引用数据类型(对象),如果储存基本数据类型时会自动装箱编程相应的包装类
2.数组长度是固定的不是自动增长的,
集合的长度是可变的,可以根据元素的增长而自动增长
在开发过程中如果知道具体的大小可以使用数组,因为数组比集合的效率高一点,如果无法预估的话就使用集合因为集合长度手机可变的
在集合中
add表示添加的元素,
remove表示删除其中的元素
要今年行运算的话就要把集合转化为数组然后在用for循环进行输出打印,
clear表示清空里面的元素
contains表示检查数组里面有没有这个元素(注意:比较的是两个地址值看有没有从写来决定返回的是true还是flase')
isEmpty表示检查本数组是否是空元素

-______________________________________
Collection中放入自定义
就是添加相应的getset方法有残午餐构造然后进行输出,注意在检查是比较的是地址值,所以一定要进行重写否则会报错,这样就可以创建自己的类型放在collection里面了
——————————————————————
Collectio方法中All方法的简介


image.png

add:将掺进来的colleaction全部添加到前面的colleaction
remove:将掺进来的colleaction全部删掉到前面的colleaction
contains:将掺进来的colleaction是否包含前面的colleaction
retain:取两者之间的交集

相关的代码示例:
image.png

———————————————————————
使用迭代器遍历数组:、
迭代器遍历数组是吧数组包装家家爱你给一个迭代器然然后运营while后者for循环进行遍历最终得到结果,注意如果超出范围会报错
相应代码示例:
image.png

———————————————————————

List接口
可以利用for循环进行遍历输出
list结构的极大特点
add后面的可以只是在哪一位以后加一个元素,
remove可以指定那个元素进行删除
set方法指的是个别地方单独更替
get方法指的是耨个地方单独打印

详细截图如下:
image.png

———————————————————————
Listlterator的倒序输出特性
利用list里面的hasPrevious来进项倒叙输出
相关参考如下:
image.png

如果想使用hasprevious进行输出的话一定要先使用正序的方法输出背一遍,不然无法输出
————————————————————————

Vector类 (因为不常用所以制作了解即可)


image.png

————————————————————————
数组数据结构:
数组:
特点:查询和修改比较快,二删除和增加就比较慢了;
因为Arraylist和Vector地底部系统都用的是数组结构所以他们会有一个范围,Arraylist数组默认的长度为10二妹子自动扩充是扩充自己长度的50%,而Vector每次空充自己的一倍,两者比价会存在内存的应用与浪费的关系,
为什么查询和修改块:
因为查询和修改时直接通过数组的下标就可以快速的查询到相应的位置:
为什么添加和删除慢:
因为数组的下标识相连的如果更改一个位置的话就会使得所有的数据都改动,胡浪费内存所以说,添加和删除比较慢。
链表:
特点: 删除和增加比较快,查询和修改比较慢。
因为Linkedlist的底层结构是使用的链表结构,像一个车链子两两相扣。
为什么删除和增加比较快那:
因为莲表示结构储存的是自己和上一个的地址值,如果想要修改只修跳动一个数据就可以达到哦相应的结果。
为什么查询和修改比较慢:
因为他们的地址值不是挨个相连的如果想要查询到耨个地址值的话就要从开头或者结尾一个个的查询,所以说查询和添加就比较慢。

List三个子类的特点:
Arraylist 底层结构是数组所以查询和修改比较快而添加和删除就比较慢,但是线程不安全,效率高。
Vector:底层结构是数组所以查询和修改比较快而添加和删除就比较慢,线程相对于Arraylist比较安全,所以效率比较低,而Vector和linkedlist相比增删慢,因为Vector是数组结构
linkedlist:底部结构是链表是结构所以删除和增加比较快,查询和修改比较慢,想成不安全,但是效率高
Vector和Arraylist的区别:
他们两个的底部结构相同都是数组结构,而他们的不同之处就是Arraylist的线程相对来说不安全,
而Arraylist和linkedlist结构相比较:
他们两个的结构不同,牵着是数组结构而后者是链表结构,一个查询和修改比较快速把,一个是删除和增加 比较快
他们的额想听支出就是线程都是不安全的
Arraylist线程安全的方案:
可以使用Collections工具类中的synchronizedlist来修改成为线程安全的
Linkedlist的特有方法:
linkedlist addFirst方法指的是想里面添加那些数据,congress打印,(注意:这里是县级后出的顺序)
linkedlist addlast方法指的是想最后一个插入数据,只在最后
linkedlist removefirst指的是删除第一个元素,
linkedlist removelast这里指的是删除最后一个元素
linkedlist get方法,治理指的是查询所在内存地址的数据(注意:get数里面存储的是int类型数据)


泛型的使用:
不适用泛型麻烦之处:
因为在list中存放种数据类型的数据所以在迭代是要进行多次类型的判断

例:
image.png

使用泛型之后就只能使用一种数据类型
泛型的优点:
可以减少判断的次数,从减少错误的始发行,让代码看起来没有那么肿胀,让错误发生在测试区域,可以及时更正。

相应代码如下:
image.png

——————————————————————
自定义泛型
对泛型对getset定义然后调用是会用,那么自己定义的一个泛型就好了,代码如下:


image.png

——————————————————————
泛型通配符:
在不知道返回的是什么类型的时候可以使用通配符来接受
注意:
//?extend E
//向下限定,E即其子类,可以储存进来
//?supre E
//向上限定,E及其父类,可以储存进来


image.png

———————————————————————
增强for循环进行遍历的话可以达到简化遍历的效果
代码如下:
image.png

在删除数据的时候挣钱for循环是不能删除的,会出现越界错误,在删除数据的时候尽量使用迭代器删除数据,
————————————————————————
可变参数
可变参数可以同时传入多个数据,但是注意如果有对个参数的话要把可变参数放到最后编译,不然系统会出现报错

案例:
image.png

————————————————————————
数组和集合的相互转换
通过数组转化为集合利用的是Arrays.aslist这样就可以吧一个数组转化为集合但是这不允许添加任何的数据,因为集合的长度一旦确定无法更改,
通过集合转化为数组利用的是toArrays这样就可以把一个集合转化为一个数组,如果初步设定的长度小于原本长度,系统就会自动扩充为本身长度
代码如下:

image.png

————————————————————————
Map简介:
map的特点是一健值出现的
什么是建值:一个key对应的是一个value(总是一对一对出现的)
map里面的可以是不能重复的
一些Map的相关语法如图:
image.png

注意相对的返回值类型
————————————————————————
Map遍历的两种方式
image.png

第二种方法:
使用entry进行遍历注意返回的是自己的可以和value需要遍历
代码如下
image.png

————————————————————————
Map其他实现类的简介
Linkedhasmap特点:他们的存取特点都是一样的
treemap特点:可以对他们里面的内容进行排序(主要针对可以进行排序)
————————————————————————
Collections工具类简介

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容

  • Java集合类可用于存储数量不等的对象,并可以实现常用的数据结构如栈,队列等,Java集合还可以用于保存具有映射关...
    小徐andorid阅读 1,898评论 0 13
  • ​ 在编写java程序中,我们最常用的除了八种基本数据类型,String对象外还有一个集合类,在我们的的程序中到处...
    Java帮帮阅读 1,392评论 0 6
  • 一、概述 文件的逻辑结构 ( 顺序文件,索引文件,索引顺序文件,直接文件和哈希文件 ) 外存分配方式 文件目录管理...
    傻傻傻瓜_d432阅读 493评论 0 0
  • 本文出自 Eddy Wiki ,转载请注明出处:http://eddy.wiki/interview-java.h...
    eddy_wiki阅读 1,145评论 0 16
  • 幽幽的情话, 像夏日被风吹过的树叶, 在耳边沙沙作响。 像是你的呢喃, 像是我每夜和你道的晚安。
    方糖姑娘x阅读 206评论 6 6