JavaWeb入门(三) 集合篇

来源:互联网 发布:明星出道前照片 知乎 编辑:程序博客网 时间:2024/06/05 19:36

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);    }}
0 0
原创粉丝点击