Java学习之容器

我们都站在巨人的肩膀上

参考:http://www.cnblogs.com/forestwolf/p/5645179.html


1.容器概述

容器,就是可以容纳其他Java对象的对象。Java容器里只能放对象,对于基本类型(int, long, float, double等),需要将其包装成对象类型后(Integer, Long, Float, Double等)才能放到容器里

优点:

  • 降低编程难度
  • 提高程序性能
  • 提高API间的互操作性
  • 降低学习难度
  • 降低设计和实现相关API的难度
  • 增加程序的重用性

1.1接口与实现

接口:

接口图谱

Map接口没有继承自Collection接口,因为Map表示的是关联式容器而不是集合。但Java为我们提供了从Map转换到Collection的方法,可以方便的将Map切换到集合视图。
上图中提供了Queue接口,却没有Stack,这是因为Stack的功能已被JDK 1.6引入的Deque取代。

实现:

这里写图片描述

1.2迭代器(Iterator)

迭代器:

迭代器(Iterator)为我们提供了遍历容器中元素的方法。Collection也继承了Iterator,所以容器的核心就是迭代器的实现。

Collection接口源码:

public interface Collection<E> extends Iterable<E>{
     int size();
     boolean isEmpty();
     //此列表是否包含指定的元素
     boolean contains(Object o);
     Iterator<E> iterator();
     Object[] toArray();
     <T> T[] toArray(T[] a);
     boolean add(E e);
     boolean remove(Object o);
     //此列表是否包含指定的集合
     boolean containsAll(Collection<?> c);
     boolean addAll(Collection<? extends E> c);
     boolean removeAll(Collection<?> c);
     //取两个集合的交集
     boolean retainAll(Collection<?> c);
     void clear();
     boolean equals(Object o);
     int hashCode();
}

Iterable 接口源码:

public interface Iterable<T> {
Iterator<T> iterator();
}

Iterator 接口源码:

public interface Iterator<E>{
    boolean hasNext();
    E next();
    void remove();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值