JavaWeb入门(三) 集合篇

JavaWeb入门(三) 集合篇

标签(空格分隔): JavaWeb


原文地址

关于集合类

如何使用集合类?

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

注意:

  • ArrayList 实现了可变大小的数组,它的长度随着元素的增加而变化,且可以存在重复的元素。
  • HashMap 允许 null 值, null keynull value 都可以存在。
  • Collection 是集合类最基本的接口,所有集合类都继承自 Collection 或其子接口。
  • 由于 Collection 具有 性能高、易扩展、已修改 等优点,因此可以用 Collection 实现的不要用数组方式实现。

List

特点

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

常用子类

***ArrayList
LinkedList
Vector***

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


Set

特点

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

常用子类

***HashSet
TreeSet***

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


Map

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

例:Map的使用实例

public class UsingMap {

    public static void main(String[] args) {
        Map<String, String> names = new HashMap<>();
        names.put("09-01-01", "Robert");
        names.put("09-01-02", "Scarlet");
        names.put("09-01-01", "Lucian");    //对于已有的键 09-01-01, 会使用新值Lucian替换原值Robert

        Set<String> keySet = names.keySet();        //键集是Set,无重复值
        Collection<String> values = names.values(); //值集是Collection,允许重复值出现

        //使用迭代器遍历Map的键集
        Iterator<String> iterator = keySet.iterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }
        //使用迭代器遍历Map的值集
        Iterator<String> valueIterator = values.iterator();
        while (valueIterator.hasNext()) {
            System.out.println(valueIterator.next());
        }
    }
}

输出结果:

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


异常 Exception

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

基本用法

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

throw 与 throws关键字

throws的使用:

public func() throws Exception{
    //可能出现异常的函数体
}

public void static main(String[] args){

    try{
        func();     //可能抛出异常的方法要用try catch 处理
    }catch(Exception e){
        //...在此处处理异常
    }
}

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

try{
    throw new Exception("Some error occurs.");
}catch(Exception e){
    System.out.prinln(e);
}

自定义异常类

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

public static class MyException extends Exception{
    //必须实现构造方法
    public MyException(String _str){
        super(_str);
    }
}

public static void main(String[] args){
    try{
        throw new MyException("This is a MyException.")
    }catch(Exception e){
        System.out.println(e);
    }
}
posted @ 2016-12-30 15:57  庄浩  阅读(231)  评论(0编辑  收藏  举报