java集合(二)
2016-04-08 12:17
246 查看
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() //返回所有键的集合
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> 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的值已经被修改了
相关文章推荐
- MyEclipse10 部署 空指针异常处理(引用)
- java多线程简介
- java-----instanceof与getClass的区别
- java-I/O流
- Java 使用 json-lib 处理 JSON
- 掌握Java的基本概念
- Java的内存管理实际上就是对象的管理
- URL短地址压缩算法 微博短地址原理解析 (Java实现)
- Java NIO框架Netty教程(一) – Hello Netty
- myeclipse 环境配置优化,不断跟新整理中
- java基础 ----- clone
- Eclipse下通过Maven的Jetty插件运行Web工程的配置
- (转)Eclipse 安装反编译插件jadclipse
- java Exchanger 2
- java时间戳与日期字符串相互转换方法
- JAVA Exchanger
- MyEclipse中点击deploy MyEclipse无响应解决方法
- eclipse中注释的设置
- Spring注入
- java问卷调查java 写法