Java面向对象知识点总结07---JAVA集合框架 接口及常用类 异常处理机制 迭代器 增强for循环 聚合操作 自定义异常类

1.JAVA集合框架

1.集合框架的基本结构:转自Alt
接口及常用类

Set接口:无序 不可重复
List接口:有序 可重复
Map接口:Map<k,v> 关键字不能重复

Arrays的常用方法

填充Arrays.fill()
复制Arrays.copyOf()
比较Arrays.compare(array1,array2)输出字典序较大的array

2.集合的遍历

迭代器

Iterator类就是迭代器,所有实现了Collecction或者Iterable接口的集合类都可以生成迭代器。
以ArrayList为例,我们可以使用Collection.iterater()方法生成迭代器
对于生成的Iterator对象,有Iterator.hasNext()方法用以检测是否还可以继续迭代,Iterator.next()方法用以获得下一个迭代对象,如果没有下一个迭代对象依然使用next()方法的话会抛出NoSuchElementException异常。

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Test {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);

        Iterator<Integer> iterator = list.iterator();
        
        while ( iterator.hasNext() ) {
            System.out.println(iterator.next());
        }
    }
}
增强for循环

就是foreach循环

for (Integer integer : list) {
    System.out.println(integer);
}
聚合操作

使用聚合操作可以将数组转换为流来进行操作,使用Collection.stream()可以生成流,之后就可以对该流进行一系列过滤操作。
stream.filter()可以传入返回值为boolean的方法用以过滤流中的每一个元素
stream.limit(int n)可以限制只读取流中的前n个元素
stream.skip(int n)用以跳过当前流中的前n个元素
stream.collect(Collector c)可以将流剩下的元素收集起来,其中Collector为Java收集器

public class Test {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        list.add(123);
        list.add(265);
        list.add(396);

        Stream<Integer> stream = list.stream();
        stream = stream.filter(integer -> integer > 200);
		var after = stream.collect(Collectors.toList());
        System.out.println(after);
    }
}

3.异常处理机制

下面是一个异常处理的标准形式

try {
    //可能会出异常的语句
} catch ( 异常 e1 ) {
    //当我们捕获e1这种异常时需要做的事情
} catch ( 异常 e2 ) {
    //当我们捕获e2这种异常时需要做的事情
} finally {
    //这里的内容一定会被执行
}
  • 只会有一个catch句段被执行
  • 当我们捕获到异常的时候会从上向下匹配catch的异常,有时需要捕获的异常有继承的情况,必须将子类异常放在靠上的位置,否则会报错
  • finally句段中的内容一定会被执行,即使catch中可能会return,所以可以将资源释放类的操作放在finally中执行

Exception类还有如下常用方法
getMessage()返回该异常的详细描述字符串。
printStackTrace()将该异常的跟踪栈信息输出到标准错误输出。
printStackTrace(PrintStream s)将该异常的跟踪栈信息输出到指定输出流。
getStackTrace()返回该异常的跟踪栈信息。

4.自定义异常类

自定义异常类只需要继承Exception类,并且实现构造函数

public class MyException extends Exception {
    public MyException() {
        super("An Exception Caused");
    }
}

测试类

try {
    throw new MyException();
} catch ( MyException e ) {
    System.out.println(e.getMessage());
    //输出“An Exception Caused”
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LXTTTTTTTT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值