[关闭]
@mrbourne 2017-01-04T09:27:39.000000Z 字数 2090 阅读 1495

JavaWeb入门(三) 集合篇

JavaWeb


原文地址

关于集合类

如何使用集合类?

  1. 若涉及到 堆栈,队列 的操作时,应考虑使用 List 。对于需要 快速插入、删除 元素的需求,应使用 LinkedList ,而对于需要 快速随机访问 元素的需求,应使用 ArrayList 。这应该是由 链表数组 的不同数据结构决定的。
  2. 对于哈希表的操作,作为 key 的对象要求能正确复写 equals & hashCode 方法。
  3. 尽量返回接口类型而非实际类型,如返回List而非LinkedList或ArrayList, 这样如果需要将 ArrayList 改为 LinkedList , 客户端的代码就无需改变。
  4. List 有类似数组下标的操作,且允许有相同的元素存在。Map 是以键值对(key-value)的形式存在,不能存在相同的键。

注意:


List

特点

可以存放任意数据,内容可以重复,提供高效的插入、删除元素的方法。

常用子类

ArrayList
LinkedList
Vector

Vector 用法同 ArrayList ,而 ArrayList 具有异步处理性能高非线程安全 的特点。 如果需要线程安全,那么可以选择Vector


Set

特点

可以存放任意数据,内容不可重复。

常用子类

HashSet
TreeSet

HashSet 输出时,元素的次序是无序随机的。TreeSet 则是按ANSIC 表由小到大排列的,称为 有序集


Map

Map 中存放的是 键值对 数据。一个 key 对应一个 value

例:Map的使用实例

  1. public class UsingMap {
  2. public static void main(String[] args) {
  3. Map<String, String> names = new HashMap<>();
  4. names.put("09-01-01", "Robert");
  5. names.put("09-01-02", "Scarlet");
  6. names.put("09-01-01", "Lucian"); //对于已有的键 09-01-01, 会使用新值Lucian替换原值Robert
  7. Set<String> keySet = names.keySet(); //键集是Set,无重复值
  8. Collection<String> values = names.values(); //值集是Collection,允许重复值出现
  9. //使用迭代器遍历Map的键集
  10. Iterator<String> iterator = keySet.iterator();
  11. while (iterator.hasNext()) {
  12. System.out.println(iterator.next());
  13. }
  14. //使用迭代器遍历Map的值集
  15. Iterator<String> valueIterator = values.iterator();
  16. while (valueIterator.hasNext()) {
  17. System.out.println(valueIterator.next());
  18. }
  19. }
  20. }

输出结果:

09-01-01
09-01-02
Lucian
Scarlet


异常 Exception

异常指在运行阶段可能出现的错误,这样的的错误在编译时无法被检测出。常见的如: 数组越界文件找不到

基本用法

  1. try{
  2. //...可能产生异常的代码块
  3. }catch(Exception e){
  4. //...异常处理部分
  5. }finally{
  6. //...处理完异常后操作
  7. }

throw 与 throws关键字

throws的使用:

  1. public func() throws Exception{
  2. //可能出现异常的函数体
  3. }
  4. public void static main(String[] args){
  5. try{
  6. func(); //可能抛出异常的方法要用try catch 处理
  7. }catch(Exception e){
  8. //...在此处处理异常
  9. }
  10. }

throw 表示直接抛出一个异常
throw的使用

  1. try{
  2. throw new Exception("Some error occurs.");
  3. }catch(Exception e){
  4. System.out.prinln(e);
  5. }

自定义异常类

任何继承自Exception的类都属于自定义异常类。

  1. public static class MyException extends Exception{
  2. //必须实现构造方法
  3. public MyException(String _str){
  4. super(_str);
  5. }
  6. }
  7. public static void main(String[] args){
  8. try{
  9. throw new MyException("This is a MyException.")
  10. }catch(Exception e){
  11. System.out.println(e);
  12. }
  13. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注