java-集合

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

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

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()方法,否则会出现
NoSuchElementException
Co
实用
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常用的集合库
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值