Map集合的特点:
1. Map集合是一个双列的集合,像Python中的字典。
2. Map集合中的元素,key和value的数据类型可以相同,可以不同。
3. Map集合中的元素,key是不允许重复的,value可以重复。
4. Map集合中的元素,key和value是一一对应的。
Map接口中的常用接口:
Object compute(Object key,BiFurcation remappingFunction)
改变value,如果新value为null,则删除键值对,如果新旧都为空,则直接返回null。
System.out.println(hm);//{XiaoLi=20, Harry=23, Jenny=24}
hm.compute("Harry",(key,value)->(Integer)value+10);
System.out.println(hm);//{XiaoLi=20, Harry=33, Jenny=24}
异常的种类:
Exception:编译期异常,编写java程序时出现的问题
RuntimeException : 运行期异常,java程序运行过程中出现的问题
Error: 错误 , 必须修改源代码,程序才能运行。
throws(声明异常)
使用throws声明的方法表示此方法不处理异常
返回类型 方法名 ( 参数列表 ) throws 异常类 , 异常类 ,…{ … }
注意:如果有多个异常,只需要抛出异常的父类就可以
子父类的异常:
父类异常什么样,子类要与父类相同
如果父类没有异常,子类产生的异常不可以抛出,只能catch处理。
throws和throw关键字区别:
1. throws用来声明一个方法可能抛出的所有异常信息,表示出现异常的一种可能性。
throw则是抛出一个具体的异常类型,执行throw则一定抛出了某种异常对象。
2 . 通常在一个方法(类)的声明处通过throws声明方法(类)可能抛出的异常信息,
内部通过throw声明一个具体的异常信息。
3 . throws通常不用显示地捕获异常,可由系统自动将所有捕获的异常抛给上级方法;
throw则需要用户自己捕获相关的异常,而后再对其进行相关包装,最后将包装后的异常信息抛出。
Throwable类中定义了3个异常处理的方法
String getMessage() 返回此 throwable 的简短描述
String toString()返回此throwable 的详细消息字符串
void printStackTrace() JVM打印异常对象,默认此方法,打印的异常信息是最全面的。
finally语句
注意:finally有return语句,会永远返回finally语句,需避免该情况
LinkedHashMap特点:
1. linkedHashMap集合底层是哈希表+链表(保证迭代的顺序)
2 . linkedHashMap集合是一个有序的集合,存储元素和取出元素的顺序是一致的。
HashMap集合的特点:
1 . HashMap集合底层是哈希表:查询的速度特别快
2 . HashMap集合是一个无序集合,存储集合和取出集合的顺序可能不同。
keySet();
将hashMap中的键存储到返回的set集合中
Set<Integer> se = has.keySet();
Hashtable : 底层是一个哈希表,是一个线程安全的集合,是单线程集合,速度慢。
HashMap :底层是一个哈希表,是一个线程不安全的集合,是多线程的集合,速度快。
list接口,Set接口,Map接口:里面增加了一个静态方法of,可以一次性添加多个元素
static <E> list<E> of (E . . . elements)
前提:集合中存储的元素个数已经确定,不能更改。
注意:
1 . of方法只适用于list接口,Set接口,Map接口,不适用于接口的实现类。
2 . of方法的返回值是一个不可改变的集合,不能使用add等方法添加元素。
3. Set集合金和Map集合在调用of方法时,不能有重复元素