您的位置:首页 > 编程语言 > Java开发

Java集合接口

2016-06-03 08:22 281 查看
集合:一类相同类型的数据放到一起就是一个简单的集合。Java集合主要用来盛装其他的数据类型的引用,所以也称之为 容器

在Java集合类库将接口和实现进行了分离:

例如,队列接口
interface Queue<E>{
void add(E element);
E remove();
int size();
}
而具体的实现有:LinkedList和ArrayDueue两个类,这是两个集合类, 模拟队列行为


集合接口和迭代器接口,利用迭代器接口来实现对某个集合的增、减、遍历等操作。

Java类库中的基本接口是Collection接口,并且它扩展了Iteratable接口,

“foreach”结构:for(T element:c){…},任何实现了Iterable的对象都可以使用,因为其中的iterator方法会返回一个Iterator迭代器

可以使用接口类型存放集合的引用:
Queue<Customer>cu=new LinkedListQueue<>();
这样就可以切换

ArrayList、LinkedList与一般数组相比较是集合的大小是动态的变化的,而数组是固定的;Set相比较List中的元素保持着插入时的前后顺序关系;这两者相比较,ArrayList是用数组实现的,便于遍历,随机读取,但是在某个位置的插入效率往往很低。而LinkedList是用链表实现的,方便插入,但是不利于随机读取。

散列表HashSet:快速读取是但是无序.它是通过hash code和table来存储的。

树集 TreeSet:与HashSet相比较,它是有序的,”从小到大排序(相应的也可以从大到小排序)“,它是利用”红黑树“进行排序。在正确的位置上插入元素跟ArrayList和LinkedList相比较很快。插入一个元素的操作比HashSet相比比较慢。排序也是使用两种方案:实现Comparable接口、将“Comparator实例”作为参数进行初始化。所以,从存取速度上说一般Set比List快,如果需要有序则用TreeSet,否则就用HashSet.

优先级队列:无论怎么插入,里面的元素都是有序的“从小到大”,用堆实现 ,排序也是使用”Comparable“和“Comparator” 两种方式。与TreeSet相比较(to be continued)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 集合 List Set Map