1. 双列集合Map(HashMap)
双列集合是每个元素都有键与值两部分组成的集合,记录的是键值对对应关系。即通过键可以找到值。
最常用的双列集合是Map下的子类HashMap。
Map(HashMap)的使用:创建对象时加入两个泛型。
Map<k,v>
key - 此映射所维护的键的类型
value - 映射值的类型
常用方法:
public V put(K key,V value) //加入元素
public V get(Object key) //根据键找值
public Set<K> keySet() //返回所有键的集合
最常用的双列集合是Map下的子类HashMap。
Map(HashMap)的使用:创建对象时加入两个泛型。
Map<k,v>
key - 此映射所维护的键的类型
value - 映射值的类型
常用方法:
public V put(K key,V value) //加入元素
public V get(Object key) //根据键找值
public Set<K> keySet() //返回所有键的集合
a)Entry键值对对应关系
在
Map
类设计时,提供了一个嵌套类:
Entry
。
Entry
将键值对对应关系封装成了对象。是我们可以独立使用,比如遍历
Map
集合。可以从中获取一个键值对的键与值。
2.Collections
Collections
是集合工具类,专门对集合进行操作。常用方法:
public static <T> void sort(List<T> list) // 排序
public static <T> int binarySearch(List<?> list,T key) // 查找元素索引
public static void shuffle(List<?> list) // 打乱元素顺序
public static <T> void sort(List<T> list) // 排序
public static <T> int binarySearch(List<?> list,T key) // 查找元素索引
public static void shuffle(List<?> list) // 打乱元素顺序
public static <T> boolean addAll(Collection<? super T> c,T... elements) //向集合中一次加入多个元素
该方法使用到了可变参数,即定义时并不知道要传入多少个实际参数。此时设计成
...
的方式,此时可以在调用该方法时,一次传入多个参数。传入的多个数将被自动组织成数组,我们只要操作生成的数组即可。
注:可变参数只能放在最后定义。可变参数方法本质是数组,所以不可以与数组类型参数重载。可变参数可传入数组,反之不可以。
注:可变参数只能放在最后定义。可变参数方法本质是数组,所以不可以与数组类型参数重载。可变参数可传入数组,反之不可以。
3.异常
a)异常概述
在
Java
等面向对象的编程语言中,异常本身是一个类,产生异常就是产生了一个异常对象。
java
处理异常的方式是中断异常。b)异常分类
严重错误,无法通过处理的错误
Error运行时异常,运行时可能会报错,可以不处理。如数学异常 RuntimeException
编译时异常,编译时无法编译通过。如日期格式化异常 Exception
c)异常基本操作
l
创建异常对象(
JDK
已定义的异常会自动创建对象,自定义异常需要手动创建)l 抛出异常( JDK 已有定义的异常会自动抛出异常,自定义异常需要手动抛出)
l 处理异常 :
捕获处理,将异常获取,使用 try/catch 做分支处理
try{
需要检测的异常;
} catch( 异常对象 ) {
异常处理代码
}
声明抛出处理,出现异常后不处理,声明抛出给调用这处理。
方法声明上加 throws
d)自定义异常
如果
Java
没有提供你需要的异常,则可以自定义异常类。定义方法:编译时异常继承 Exception ,运行时异常继承 RuntimeException
自定义异常需要手动抛出,使用 throw 抛出异常。
e)注意事项
l
多异常处理捕获处理:
1. 多个异常分别处理
2. 多个异常一次捕获多次处理:前边的异常不能大于后边异常
3. 多个异常一次捕获一次处理:前后异常不能有子父类关系
声明抛出异常
声明上使用,一次抛出多个异常
l 运行时异常被抛出可以不处理。即不捕获也不声明抛出
l 如果父类抛出了多个异常 , 子类覆盖父类方法时 , 只能抛出相同的异常或者是他的子集
l 父类方法没有抛出异常,子类覆盖父类该方法时也不可抛出异常。此时子类产生该异常,只能捕获处理,不能声明抛出
l 在 try/catch 后可以追加 finally 代码块, finally 代码块一定会被执行
规定:当遇到 return 是会产生一个返回路劲,路径中存储要返回的值,当方法结束时,将临时存储的值返回
l 函数中已经出现返回语句返回值A,再在finally中修改A值,则最终的返回值仍为修改前A的值。但在该方法中A的值已经被修改了