java中的集合及接口和类的区别
来源:互联网 发布:频率域低通滤波python 编辑:程序博客网 时间:2024/06/14 14:51
Java API中所用的集合类,都是实现了Collection接口,他的一个类继承结构如下:
Collection<--List<--Vector
Collection<--List<--ArrayList
Collection<--List<--LinkedList
Collection<--Set<--HashSet
Collection<--Set<--HashSet<--LinkedHashSet
Collection<--Set<--SortedSet<--TreeSet
Collection和Map是两个毫无关系的接口,Collection是对象集合,Map是键值对集合;
Collection 和 Collections的区别?
Collection是集合类的上级接口,继承与他的接口主要有Set和List.
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
List、set和Map的区别?
List和map都是collection的接口
List:有顺序的,元素可以重复;
Set:无顺序的,元素不可重复(值不相同);
Map:元素是键值对:key唯一不可重复,value可重复.
List:有顺序的,元素可以重复;
ArrayList:
LinkedList:
Vector:
ArrayList、LinkedList和Vector区别?
ArrayList:都可以实现List接口,类似于数组,用来保存数据,保存的数据是连续的,查询速度快;
LinkedList:以链表的形式保存数据,删除修改速度快 保存数据不连续
Vector:类似于ArrayList 区别 Vector的线程比ArrayList 安全高
Set:无顺序的,元素不可重复(值不相同);
HashSet:
SortedSet:
TreeSet:
Map:元素是键值对:key唯一不可重复,value可重复;
HashMap: 轻量级,线程不安全,允许key或者value是null;
SortedMap:元素自动对key排序
Hashtable:重量级,线程安全,不允许key或者value是null;Properties:Hashtable的子类,key和value都是String
TreeMap:集合是指一个对象可以容纳了多个对象(不是引用),这个集合对象主要用来管理维护一系列相似的对象。
Hashtable和HashMap的区别?
两者都可以完成了Map接口;
HashTable: 元素成对,线程安全,元素不可为空
Hashtable:元素成对,元素不可为空,线程安全。
HashMap:元素成对,元素可为空,因非安全,在只有一个线程访问的情况下,效率要高于Hashtable。
集合接口类层次:
位于package java.util.*;
Collection
↑
Set
↑
SortedSet SortedMap
1) Set: 集合类中不允许有重复对象;
2) SortedSet: 和Set接口同,但元素按升序排列;
3) List: 元素加载和移出时按照顺序,可以保存重复对象。
4) Map: (key-value对)存储了唯一关键字辨识和对应的值。
5) SortedMap: 和Map类同,但对象按他们关键字的升序排列。
集合类层次:(注:JAVA1.5对JAVA1.4的最大改进就是增加了对范型的支持)