黑马程序员-Java集合框架整体观

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-


Java集合框架:Java集合框架为接口和实现两部分组成

Java集合类库将接口和实现分离。

队列接口可以在队列末尾添加元素,在队列头部删除元素,可以查找队列中元素的个数。一个队列接口最小的形式可能如下这样。

interface Queue<E>
{
    void add(E element);
    E remove();
    int size();
}

队列通常的有两种实现形式:一种是使用数组,另一种是使用链表:
使用数组实现

class ArrayQueue<E> implements Queue<E>
{
    ArrayQueue(int capacity){...}
    public void add(E element){...}
    public E remove(){...}
    public int size(){...}
    private E[]elements;
    private int head;
    private int tail;
}

使用链表实现

class LinkedListQueue<E> implements Queue<E>
{
    LinkedListQueue(){...}
    public void add(E element){...}
    public E remove(){...}
    public int size(){...}

    private Link head;
    private Link tail;
}

在使用的时候,我们有两种类型的队列实现方式可选,

Queue<String> demo = new ArrayQueue<String>(100);

当后来我们想要换另外一种实现的时候,只需要在构造函数的地方更改就好。这就是我理解的接口和实现的好处之一了。

集合框架的Collection接口和迭代器接口
Java类库中,集合类的接口是Collection接口。这个接口定义了几个基础的方法,如add、iterator方法。add向集合中添加元素,如果添加成功返回true,否则返回false。iterator方法返回一个实现了Iterator接口的对象,用于依次访问集合中的元素。
iterator对象有三个方法:E next()、boolean hasNext()、void remove()。
next方法返回集合中的一个元素,它的原理类是于这样,
第一次调用,next() …… |eeeeee,调用后,e|eeeee ,跳过了第一个元素,处于第一个和第二个元素之间,并返回了跳过元素的引用。
hasNext方法,如果集合中还有可以访问的元素就返回true。结合next方法来使用。

 Collection<String> c =...;
 Iterator<String> iter = c.iterator();
 While(it.hasNext())
 {
    String element = it.next();
 }

remove()方法用于删除上次调用next方法返回的元素。

Iterator it = c.iterator();
c.next();
it.remove();

remove方法和next具有依赖性,只要调用next后才能调用remove方法,如果没有调用next方法就调用remove方法,将会抛出一个IllegalStateException异常。
想要删除两个相连的元素,不能这样直接调用

c.next();
c.remove;
c.remove;

而是必须调用next()越过后才能调用remove删除

c.next();
c.remove;
c.next();
c.remove;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值