JAVA零基础学习笔记10

JAVA零基础学习笔记10,第1张

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


同步控制暂时只做了解,待学习多线程之后再回来看。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5481439.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存