java中arraylist和vector的区别 arraylist和linkedlist的区别vector?

[更新]
·
·
分类:互联网
3933 阅读

java中arraylist和vector的区别

arraylist和linkedlist的区别vector?

arraylist和linkedlist的区别vector?

ArrayList
1)只能装入引用对象(基本类型要转换为封装类);
2)线程不安全;
3)底层由数组实现(顺序表),因为由顺序表实现,所以会具备顺序表的特点,如:需要声明长度、超出长度时需要进行扩容、不适合频繁的移动删除元素、检索元素快;
4)capacity默认为10,超出时,capacity自动增长0.5倍(oldCapacity 1)。
Vector:
1)只能装入引用对象(基本类型要转换为封装类);
2)Vector通过synchronized方法保证线程安全;
3)底层也由数组实现;
4)capacity默认为10(在构造方法中),超出时增长capacityIncrement的量,capacityIncrement小于等于0时,则增长1倍((capacityIncrement 0) capacityIncrement : oldCapacity)。
LinkedList
1)只能装入引用对象(基本类型会转换为封装类);
2)线程不安全;
3)底层实现为链表,具备链表的特点,如:不用声明长度、检索性能较差,但是插入移动删除较快。
4)链表通过Node对象实现。

map,set是一种什么样的数据结构?

Java的数据结构有哪些?Map与Set的本质区别是什么?
分析:Java常见的数据结构有Collection和Map,其中Collection接口下包括List和Set接口,其下又有多个实现类如List下有ArrayList、LinkedList和Vector等实现类,Set下有HashSet、LinkedSet等实现类和SortedSet接口,HashSet下有LinkedHashSet子类,SortedSet接口下有TreeSet实现类。Map接口下有HashMap(有LinkedHashMap子类)、HashTable(有Properties子类)实现类和SortedMap接口(有TreeMap实现类)。
JAVA的数据结构主要有List、Set、Map、ArrayList、HashSet、HashMap、Properties等。
Map与Set的本质区别有:Set不能包含重复的元素,最多有一个空值,继承自Collection接口,底层是Map实现机制。Map不能包含重复的键,每个键最多对应一个映射的值,不能有空值键。两接口提供的方法不完全一样。