自定义异常和集合的概念

一 、自定义异常

当我们需要用到异常且不仅仅是别人定义的异常时,我们就可以去自定义异常。

例如我们首先自定义一个异常为MyException,这个异常类可以继承RunTimeException,也可以继承Exception,异常类只有一个字符串形参和一个无参构造加一个有参构造,如下例代码所示:

public class MyException extends RunTimeException{
    private String msg;
    public myException(){}
    public myException(String msg){
        super(msg);
    }
}

我们定义完这个异常类之后,我们可以去定义使用异常的类 UseMyException ,在定义构造函数时我们需要 throw 出一个异常时打印出的信息,如下面所示:

public class UseMyException{
    public void useMyException(int age) throws MyException{
        if(age<0){
            throw new MyException("年龄不合理");
        }
        else{ this.age=age; }
    }
}

在这个类中我们定义了年龄的限制,通过年龄的数据来判断是否抛出异常,如果年龄小于0,则抛出异常,否则是多少岁就是多少岁。

我们可以试着测试一下这个代码,我们再定义一个测试类 Test,如下面所示:

public class Test{
    public static void main(String[] args){
        UseMyException test=new UseMyException();
        try{
            test.useMyException(-1);
        }catch(MyException e){
            e.printstackTrace();
        }
    }
}

我们依然用try-catch块把这个异常捕获,因为我们给年龄赋的值是-1,因此它会捕获这个异常并且打印出来,这个过程是在编译时就已经开始打印了,而不是运行时开始。就这样,我们成功地自定义了一个类。

二、集合

 在Java中,集合是一种用于存储和操作多个对象的数据结构。集合提供了一种比数组更灵活、更高效的方式来存储和操作数据。Java集合框架包含了一些接口和类,其中最常用的有List、Set和Map。

List是一个有序的集合,它可以包含重复元素。常用的List实现类有ArrayList和LinkedList。可以用List<> list = new ArrayList<>(); 来进行实例化,在<>中不能填基本数据类型,只能是引用数据类型。填了之后,list就只能插入这个类型的数值;不填的话,list可以插入不同引用数据类型的数值。

Set是一个不能包含重复元素的集合。常用的Set实现类有HashSet和TreeSet。

Map是一个键值对的集合,其中每个键对应一个值。常用的Map实现类有HashMap和TreeMap。

Set和Map也是与List一样表示。

除了这些基本的集合类型之外,Java集合框架还提供了一些其他的集合类型,用于满足不同的需求。

在使用Java集合框架时,应该根据实际需求选择合适的集合类型,并了解这些集合类型的特性和使用方式。同时,了解各种集合类型的性能和内存开销也是很重要的,以便在使用时做出合理的选择。

如下面这个List的简单应用:

public class Main {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<Integer>();
        list.add(1);
        list.add(-1);
        list.add(100);
        list.add(1);
        System.out.println(list);
    }
}

打印出了[1,-1,100,1]这个结果。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值