![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
集合
Chris-Green
这个作者很懒,什么都没留下…
展开
-
arraylist linkedlist vector的区别
ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢, Vector由于使用了synchronized方法(线程安全)所以性能上比ArrayList要差, LinkedList使用双向链表实现存储,按序号索引数据需要进行向前或向后遍历,但是插入数据转载 2017-10-09 10:40:31 · 188 阅读 · 0 评论 -
HashMap和Hashtable的区别
HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别。主要的区别有:线程安全性,同步(synchronization),以及速度。 1、HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized的,并可以接受null(HashMap可以接受为null的键值 (key)和值(value),而Hashtable则不行)转载 2017-10-09 10:53:19 · 208 阅读 · 0 评论 -
HashSet、TreeSet和LinkedHashSet的区别
Set集合不包含重复的元素,这是使用Set的主要原因。有三种常见的Set实现——HashSet, TreeSet和LinkedHashSet。什么时候使用它们,使用哪个是个重要的问题。总体而言,如果你需要一个访问快速的Set,你应该使用HashSet;当你需要一个排序的Set,你应该使用TreeSet;当你需要记录下插入时的顺序时,你应该使用LinedHashSet。 1. Set接口转载 2017-10-09 11:12:51 · 8954 阅读 · 0 评论 -
什么是值传递和引用传递?
对象被值传递,意味着传递了对象的一个副本。因此,就算是改变了对象副本,也不会影响源对象的值。 对象被引用传递,意味着传递的并不是实际的对象,而是对象的引用。因此,外部对引用对象所做的改变会反映到所有的对象上。转载 2018-01-12 14:26:11 · 3978 阅读 · 0 评论 -
ArrayList、LinkedList、Vector的区别
Arraylist和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加插入元素,都允许直接序号索引元素,但是插入数据要涉及到数组元素移动等内存操作,所以插入数据慢,查找有下标,所以查询数据快,Vector由于使用了synchronized方法-线程安全,所以性能上比ArrayList要差, LinkedList使用双向链表实现存储,按序号索引数据需要进行向前或转载 2018-01-12 15:09:15 · 126 阅读 · 0 评论 -
Collections.synchronizedList & CopyOnWriteArrayList
ArrayList是非线性安全,即在一方在便利列表,而另一方在修改列表时,会报ConcurrentModificationException错误。而这不是唯一的并发时容易发生的错误,在多线程进行插入操作时,由于没有进行同步操作,容易丢失数据。 Vector是一个线程安全的列表,采用数组实现。其线程安全的实现方式是对所有操作都加上了synchronized关键字,这种转载 2018-01-12 15:12:14 · 621 阅读 · 0 评论