Java集合接口
2016-06-03 08:22
281 查看
集合:一类相同类型的数据放到一起就是一个简单的集合。Java集合主要用来盛装其他的数据类型的引用,所以也称之为 容器。
在Java集合类库将接口和实现进行了分离:
集合接口和迭代器接口,利用迭代器接口来实现对某个集合的增、减、遍历等操作。
Java类库中的基本接口是Collection接口,并且它扩展了Iteratable接口,
“foreach”结构:for(T element:c){…},任何实现了Iterable的对象都可以使用,因为其中的iterator方法会返回一个Iterator迭代器
可以使用接口类型存放集合的引用:
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集合类库将接口和实现进行了分离:
例如,队列接口 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对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android Google Map获取地理位置信息的方法
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- Spark RDD API详解(一) Map和Reduce
- PropertyChangeListener简单理解
- Python中map()函数浅析
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序