java容器
2016-04-21 21:58
239 查看
Java的容器类如同其名字一样,就是容器,主要由两个接口派生而出:Collection和Map。首先是Collection类,我们用的最多的就是ArrayList类,一个有序的Collection(也称序列),元素可以重复。确切的讲,列表通常允许满足 e1.equals(e2) 的元素对 e1 和 e2,并且如果列表本身允许 null 元素的话,通常它们允许多个 null 元素;HashSet一个不包括重复元素(包括可变对象)的Collection,是一种无序的集合。Set不包含满
a.equals(b) 的元素对a和b,并且最多有一个null;Queue一种队列则是双端队列,支持在头、尾两端插入和移除元素,主要包括:ArrayDeque、LinkedBlockingDeque、LinkedList。另一种是阻塞式队列,队列满了以后再插入元素则会抛出异常,主要包括ArrayBlockQueue、PriorityBlockingQueue、LinkedBlockingQueue。虽然接口并未定义阻塞方法,但是实现类扩展了此接口。是一个键值对的集合。也就是说,一个映射不能包含重复的键,每个键最多映射到一个值。该接口取代了Dictionary抽象类。实现map的有:HashMap、TreeMap、HashTable、Properties、EnumMap。其中HashMap和HashTable区别仅仅是多线程和单线程的区别。
Aarraylist和Linkedlist的区别:ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。这一点要看实际情况的。若只对单条数据插入或删除,ArrayList的速度反而优于LinkedList。但若是批量随机的插入删除数据,LinkedList的速度大大优于ArrayList.
因为ArrayList每插入一条数据,要移动插入点及之后的所有数据。
a.equals(b) 的元素对a和b,并且最多有一个null;Queue一种队列则是双端队列,支持在头、尾两端插入和移除元素,主要包括:ArrayDeque、LinkedBlockingDeque、LinkedList。另一种是阻塞式队列,队列满了以后再插入元素则会抛出异常,主要包括ArrayBlockQueue、PriorityBlockingQueue、LinkedBlockingQueue。虽然接口并未定义阻塞方法,但是实现类扩展了此接口。是一个键值对的集合。也就是说,一个映射不能包含重复的键,每个键最多映射到一个值。该接口取代了Dictionary抽象类。实现map的有:HashMap、TreeMap、HashTable、Properties、EnumMap。其中HashMap和HashTable区别仅仅是多线程和单线程的区别。
Aarraylist和Linkedlist的区别:ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。这一点要看实际情况的。若只对单条数据插入或删除,ArrayList的速度反而优于LinkedList。但若是批量随机的插入删除数据,LinkedList的速度大大优于ArrayList.
因为ArrayList每插入一条数据,要移动插入点及之后的所有数据。
相关文章推荐
- JAVA注解
- Spring事件模拟
- springMvc文件下载
- java安全-类加载器
- LeetCode 217 Contains Duplicate II java
- Java 进行 RSA 加解密时不得不考虑到的那些事儿
- java获取MySQL自动的int类型的Id
- 20145238-荆玉茗 《Java程序设计》第8周学习总结
- 深入理解Java:注解(Annotation)自定义注解入门
- LeetCode 127 Word Ladder java (看某位大神的解法做出来的)
- Java split()方法使用注意问题
- Java发送带附件邮件示例程序
- 命令行下运行 java someClass.class出现 “错误:找不到或无法加载主类someClass ” 的解决方案
- Java的Properties类
- Java中的线程状态之终止
- eclipse配置red5服务器
- java 读取配置文件的几种方法
- solr源码导入eclipse中
- Java基础知识
- spring 动态数据源