Java学习笔记【集合】

来源:互联网 发布:2017上海高考分数算法 编辑:程序博客网 时间:2024/05/16 13:42

集合

1、集合接口

    将集合的接口和实现分离。    例如,一个队列接口的最小形式可能类似下面这样:    interface Queue<E>    {        void add<E element>        {            E remove();            int size();        }    }    //这个接口并没有说明队列是怎么实现的。队列有两种实现方式:一种是循环数组,另一种是使用列表。
    具体的实现代码举例:    //数组队列    Queue<Custom> expressLane = new CircularArrayQueue<>(100);    expressLane.add(new Custom("Harry"));    //链表队列    Queue<Custom> expressLane = new LinkedListQueue<>(100);    expressLane.add(new Custom("Harry"));    Java类库中,集合类的基本接口是Collection接口。有两个最基本的方法:    public interface Collection<E>    {        boolean add(E element);        Iterator<E iterator();    }    1)迭代器:遍历集合中的元素    public interface Iterator<E>    {        E next();        boolean hasNext();        void remove();    }    2)泛型实用方法。检测任意集合是否包含指定元素的泛型方法:    public static <E> boolean contains(Collection<E> c, Object obj)    {        for(E element: C)            if(element.equals(obj))                return true;        return false;    }

2、具体的集合

    I、链表    Java中,所有链表实际上都是双向链接的,有序集合。    List<String> staff = new LinkedList<>();    staff.add("zhang san");    staff.add("Li si");    Iterator iter = staff.iterator();    String first = iter.next();//第一个元素    String second = iter.next();//第二个元素    iter.remove();              //删除最后访问的元素
    II、数组列表    即ArrayList。
    III、散列集    快速地查找所需要的对象,这就是散列表。散列表为每个对象计算一个整数,成为散列码。    Java中,散列表用链表数组实现,每个列表被称为桶。    set是没有重复元素的集合。    setadd方法首先查找是否有已存在的对象,如果没有,就将这个对象添加进去。
    IV、树集    TreeSet(Collection<? extends E> elements)
    V、映射表集    HashMap和TreeMap。    散列映射表示例:    Map<String, Employee> staff = new HashMap<>();    Employee harry = new Employee("zhang san");    staff.put("110", harry);    ...

3、集合框架

Java集合类库构成了集合类的框架。集合有两个基本的接口:Collection和Map。
0 0