Java学习笔记【集合】

集合

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。

你可能感兴趣的:(java,集合)