java-集合

来源:互联网 发布:js 判断是否包含key 编辑:程序博客网 时间:2024/05/16 07:25

一.集合接口
队列:先进先出;栈:先进后出
队列接口:在尾部实现添加元素,在首部实现删除元素
这里写图片描述

队列接口实现方法:一种是循环数组的实现,另一种是使用列表
这里写图片描述
代码实现片段

1.集合的接口public interface Queue2<E> {    void add(E element);    E remove();    int size();}2.循环接口class CircularArryayQueue<E> implements Queue2<E>{    public CircularArryayQueue()    {    }public void add(E element) {}public E remove() {    return null;}public int size() {    return 0;}private E[] elem;//声明元素private int head;private int tail;}3.使用链表的方式class LinkedListQueue<E> implements Queue2<E>{    public LinkedListQueue(){}    public void add(E element) {    }    public E remove() {        return null;    }    public int size() {        return 0;    }    private Link head;    private Link tail;    }

相比较而言,循环数组的效率比较高,但是循环数组是一个有限集合,容量有限。
二.集合接口和迭代器接口

集合接口public interface Queue2<E> {    boolean add(E e);    Iterator<E> iterator();//迭代器接口}迭代器接口        public interface Iterator<E>        {            E next();            boolean hasNext();            void remove();        }此处需要注意的是,需要再next()方法之前,调用hasNext()方法,否则会出现NoSuchElementExceptionCo实用Collection<String> c=...;Iterator<String> iter=c.iterator();while(iter.hasNext()){    String element=iter.next();    ....}

Collection接口扩展了Iterable接口.因此对标准类库的所有集合都可以使用”for each”
元素被访问的顺序取决于集合类型,ArrayList和HashSet不同
java迭代器可以认为是两个元素之间。

这里写图片描述
2.使用迭代器进行删除元素
Iterator it=c.iterator();
it.remove();
it.next();//需要向后移动一位
it.remove();
3.泛型实用方法
public static boolean contains(Collection c,Object obj)
{
for(E element:c)
if(element.equals(obj))
return false;
}

java常用的集合库
这里写图片描述

原创粉丝点击