JAVA零基础学习笔记10

一、异常
二、捕获异常
三、抛出异常
四、HashSet集合
五、TreeSet集合
六、List集合
七、Map集合
八、工具类Collections

一、异常
在这里插入图片描述
在这里插入图片描述

二、捕获异常
在这里插入图片描述
举例:
在这里插入图片描述
try{}
catch(){}
.
.
catch(){}
finally{}
这种异常捕获机制中,catch可以为一个或者多个,
finally{}可有可无,如果写上去,无论是否有异常,最后都会被执行。
举例:
在这里插入图片描述
理解:
在捕获第一个异常后try{}内部下方的都不执行,跳到第一个catch;
并且这两个catch()内的异常类型都要是具体的,不能为Exception。
所以不如下方的方便:
检测到第一个异常过后修改,再次检测下一个异常。
在这里插入图片描述
在这里插入图片描述

三、抛出异常
(1)先抛出,再处理
在这里插入图片描述
(2)父类的方法抛出异常,子类重写方法也要抛出异常;
注意:子类抛出的异常类型范围不能比父类的大
如下一图:
在这里插入图片描述
(3)人工抛出异常
写法如下:
第一步:在类A中建立能够抛出异常的方法,如果输入的年龄不和要求,那么抛出异常,并输出文字。
在这里插入图片描述
第二步:在main方法中调用上述方法,并用try-catch捕获异常。
在这里插入图片描述
第三步:运行,输出结果为
在这里插入图片描述
(4)用户自定义异常类
java允许用户自定义异常类型,java提供的异常类型够用,所以用户自定义异常类型仅需了解。

四、HashSet集合
在这里插入图片描述

在这里插入图片描述
↑补充:一般hashcode为同时相等或同时不相等。↑

下面是代码部分(在main方法中进行):
(1)
在这里插入图片描述
第一/二行是必要的,
添加元素,输出结果为:
[null,1,a]

(2)
在这里插入图片描述
移除元素,输出结果为:[null,a]

(3)
在这里插入图片描述
判断是否包含元素 a,输出结果为:
true

(4)
在这里插入图片描述
清空集合,输出结果为:
[ ]

(5)
在这里插入图片描述
获取集合元素个数,输出结果为:
0

(6)如何遍历集合(将集合中的元素逐个输出)
在这里插入图片描述
输出为:[a,b,c,d]
①:
使用迭代器遍历集合
在这里插入图片描述
输出为:
a
b
c
d
②:
for each 迭代集合
在这里插入图片描述
输出为:
a
b
c
d

(7)
在这里插入图片描述
使用泛型,让集合只存在同一类型的对象

五、TreeSet集合
在这里插入图片描述1.自然排序
在这里插入图片描述下面是代码部分(在main方法中进行):
在这里插入图片描述
前面提及的方法,在这里都可以使用
输出为:
[2, 3, 4, 5]

下面进行遍历:
在这里插入图片描述
输出结果均为:
2
3
4
5

2.定制排序
在这里插入图片描述
代码部分如下:
如果想要根据年龄对人物进行排序
(1)新建Person类连接 Comparator 接口;
(2)会报错,点击报错处在Person类内部建立compare方法(自动);
(3)在Person类内部定义属性(姓名、年龄);
(4)在Person类中建立无参构造器(便于输入给TreeSet)和有参构造器(便于在new对象时输入具体姓名和年龄)
(5)改写compare方法,具体如图;
在这里插入图片描述

(6)在main方法中新建三个Person对象(有参),分别输入对应的姓名、年龄;
(7)建立TreeSet集合,输入无参Person类(同时使用泛型,限定为Person);
(8)把三个Person对象(p1,p2,p3)添加到集合set1中;
在这里插入图片描述

(9)使用 for each 遍历集合,发现按照年龄输出(可以从正序改为倒序),输出结果为:
在这里插入图片描述

六、List集合
在这里插入图片描述
List集合常指ArrayList
在这里插入图片描述下面是代码部分(均在main方法中):
(1)List集合按元素的添加顺序来排列,元素可以重复
在这里插入图片描述
输出结果为:
[d, b, c, c]

(2)
在这里插入图片描述
输出结果为:
c

(3)
在这里插入图片描述
输出结果为:
[d, as, b, c, c]

(4)
在这里插入图片描述
输出结果为:
[d, as, 123, 456, b, c, c]

(5)
在这里插入图片描述
输出结果为:
2
6

(6)
在这里插入图片描述
输出结果为:
[as, 123, 456, b, c, c]

(7)
在这里插入图片描述
输出结果为:
[ws, 123, 456, b, c, c]

(8)
在这里插入图片描述
输出结果为:
[456, b]

(9)
在这里插入图片描述
输出结果为:
6

七、Map集合
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1.HashMapd代码部分(在main方法中):
(1)添加键值对,使用map.put( k , v ),value值可重复
在这里插入图片描述
输出结果为:
{a=1, b=2, c=2}

(2)
在这里插入图片描述
输出结果为:
2

(3)
在这里插入图片描述
输出结果为:
{a=1, c=2}

(4)
在这里插入图片描述
输出结果为:
2

(5)
在这里插入图片描述
输出结果为:
true
true

(6)
在这里插入图片描述输出结果为:
[a, c]
[1, 2]

(7)
在这里插入图片描述
输出结果为:
key: a, value: 1
key: c, value: 2
key: a, value: 1
key: c, value: 2

2.TreeMap
在这里插入图片描述
TreeMap的自然排序方式为字典排序
代码部分如下(在main方法中):
在这里插入图片描述输出结果为:
{1=a, 2=a, 3=c}

在这里插入图片描述
输出结果为:
{1=f, 12=k, a=v, b=k, c=s}

八、工具栏Collections
在这里插入图片描述
在这里插入图片描述
代码部分如下(在main方法中):
(1)
在这里插入图片描述
输出结果为:
[c, a, a, 1, ae]

(2)
在这里插入图片描述
输出结果为:
[ae, 1, a, a, c]

(3)
在这里插入图片描述
输出结果为(随机排序,每次运行都不一样):
[a, c, ae, a, 1]

(4)
在这里插入图片描述
输出结果为:
[1, a, a, ae, c]

(5)
在这里插入图片描述
输出结果为:
[a, 1, a, ae, c]

(6)
在这里插入图片描述输出结果为:
c
1

(7)
在这里插入图片描述
输出结果为:
2

(7)
在这里插入图片描述
输出结果为:
[ac, 1, ac, ae, c]

(8)根据指定的Comparator产生的顺序对List集合元素进行排序,与之前的自制Person对象相同
①新建如下类(注意有无参构造器和有参构造器)
在这里插入图片描述
②在main方法中新建Student对象(有参构造器的作用)
在这里插入图片描述
③新建List集合,使用泛型,指定输入为Student类(无参构造器的作用),同时输入Student对象
在这里插入图片描述④将自制的对象进行排序(暂时不太清楚是按照什么排序
答:现在清楚了,这个排序规则就是新建的Student类中的比较规则
在这里插入图片描述
⑤使用 for each 遍历集合
在这里插入图片描述
输出结果为:
王大,21
张三,24
刘二,32

(9)根据Comparator指定的顺序,返回给定集合的最大/最小元素
在这里插入图片描述
输出结果为:
刘二,32
王大,21

在这里插入图片描述
同步控制暂时只做了解,待学习多线程之后再回来看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值