枚举

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂 旨在促进VIP学员互相学习的基础上公开笔记。

集合框架

1.枚举

枚举也是在JDK1.5以后才出现的,泛型主要解决的是说明一个集合里面存储的是什么类型的对象的。那枚举是用来干啥的呢?

枚举在java中是专门用来做选择的。先建好maven环境:

配置好的环境如上,我们回想一下Calendar类下的get方法,它的参数是int field,其实本意是要我们传入年、月、日、时、分、秒这些参数从而来得到对应的值的,但是它的参数的变量名field并没有描述清楚这个参数到底该传什么样的值的,像这种整形的参数变量,描述含义不清楚的(不是weight、height、length之类的含义清晰的变量),我们不知道该传入什么样的参数值的时候,通常可以通过看这个类中定义了哪些常量,然后把类中定义的常量(常量标示符表示某个int数值)作为参数值传入,比如这里的get方法,就可以传入Calendar.YEAR这样的常量值,来得到年份。

但是最开始的时候我们并不知道这种int field的参数就应该传入类中定义的常量标示符的,那么java中就推出了枚举来解决这个问题。

枚举是一个选择器,比如你的方法的参数类型要限定在A/B/C/D/E/F这六个对象之间,你就可以定义一个枚举选择器Type,把A/B/C/D/E/F六个对象写进来,然后在方法中的参数写成Type t,当使用方法的时候,一点到t上面就会知道这个参数是一个枚举,同时知道了参数类型是在什么之间做选择。如下:

如上,使用枚举你就能很清楚的知道该传入的参数在哪些对象之间做选择,相反你如果写int,同时变量名的表义又不清楚的话,是无法知道该传入什么样的参数值的。

那么我们方法的参数是枚举的方法,我们就可以在方法里面做一些选择的逻辑处理:

枚举里面既可以写构造器也可以写方法,构造器必须是私有的,但是在枚举里面写构造器和方法都是没有实际意义的:

补充一个泛型的循环:

这里的for-each循环实际上也就是迭代器做出来的。 Collections集合工具类:

认识一下JDK API?

什么是API,就是java里面所有官方公布的操作类,和这些类里面的方法,和一些简单的小案例,是一个帮助、说明文档。

网上在线中文API ,百度输入 JDK API

通常情况下拿API 来是为了看某个操作类下的一些方法,看它们是怎么使用的,用来完成什么样的功能的。

Collections集合工具类:

Collections集合工具类里面的方法大部分都是针对List集合进行相应功能操作的:

1.混合打乱Collections.shuffle(List l);

这种打乱方法,每次运行产生的结果都是不一样的。 排序方法Collections.sort(List l):

其实,上面的String为啥能够直接进行排序,是有原因的,那是因为String里面实现了Comparable接口里面的CompareTo方法,所以才能够直接进行排序,我们自己定义一个student类,看看能否直接排序?

我们自己写的类Student,最开始没有实现Comparable接口,在使用sort方法来比较不同的student对象的时候会报错,这是肯定的,因为你没有实现Comparable的接口,它不知道按照什么东西来进行比较,然后我们去实现Comparable接口:

如上所示,我们的student类实现了Comparable接口后,重写了compareTo方法,然后就可以使用sort方法来进行直接排序了。

Collections.addAll批量的加入数据:

Collections.replaceAll()替换集合里面的数据:

Collections.binarySearch()搜索对象在哪个下标下:

Collections.reverse()反转,将集合里面的对象反转过来:

Collections.fill()全部替换,将集合里面的对象全部替换为某个对象:

Collections.copy()拷贝,将一个集合的数据拷贝到另一个集合中,目标集合的长度至少要比源集合的长度长,不然会报错。如果源集合长度比目标集合长度短,则源集合里面的数据会覆盖目标集合里面前面部分的数据:

还有很多方法,以后要用的时候可以参考JDK API文档进行查询。

Map集合:双列集合,一个主键一个值。又称之为键值对集合,一个key 一个value。

键值对集合,键不可以重复,值可以重复,因为我们的拿值、查值、删值都是根据主键来进行的,如果你两个或多个主键相同的话,就无法进行拿值、查值、删值等操作了。

Map集合的结构:下面有HashMap和Hashtable两个集合,Map集合里面的主要方法如上: HashMap集合继承于AbstractMap,然后AbstractMap实现了Map接口。 HashMap是非线程安全的,Hashtable是线程安全的。

HashMap的方法和Hashtable的方法是几乎一样的,只要看看HashMap里面的方法:

由上所示,当多个主键一样的时候,你去拿值的话,拿的是最后一个。

Hashtable的主键和值都不能是null。

而HashMap的主键或者值都可以是null。

拿出集合中的所有值,用到方法values(),返回值是一个Collection集合对象,然后用for-each循环把Collection集合里面的【学Java,到凯哥学堂kaige123.com】所有数据拿出来,这里如果是HashMap集合的话,拿出来的数据是杂乱无序的,而如果是Hashtable的话,拿出来的数据是有顺序的:

取出集合里面所有的键,用方法keySet(),这个方法的返回值是Set集合对象,然后使用for-each循环把Set集合里面的所有数据都取出来。

如上显示,用HashMap的话取出来的键是杂乱无序的,而Hashtable取出来的键是有序的。 键-值一起拿方法entrySet(),它的返回值是一个Set,Set集合里面存放的是Entry实体,然后用for-each循环把集合里面所有的实体对象数据Entry拿出来:

如上所示,HashMap拿出的键-值对无序,而Hashtable拿出来的有序。

还有size()、remove()、containsKey()、containsValue()、clear()等方法,使用如上。

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

推荐阅读更多精彩内容