一 、自定义异常
当我们需要用到异常且不仅仅是别人定义的异常时,我们就可以去自定义异常。
例如我们首先自定义一个异常为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]这个结果。