Java集合框架泛型
Java集合框架
1、集合框架
List集合的主要实现类:ArrayList,LinkedList,Vector(允许重复,记录添加顺序)
ArrayList:顺序表,基于数组,查询,更改较快,新增和删除较慢.
LinkedList:链表,基于链表,查询,更改较慢,新增和删除较快.
Vector:底层是基于Object数组(线程安全,但是性能较差)
Set集合主要实现类:HashSet,TreeSet(不允许元素重复,不会记录元素的先后添加顺序)
HashSet:底层才用的是哈希表算法,等值查询效率极高。判断两个对象是否相等的规则:equals比较为true,hashCode值相同.。两者缺一不可,eclipse中提供hashCode与Equals方法
TreeSet:不保证元素的先后添加顺序,但是会对集合中的元素做排序操作。底层才用红黑树算法(树结构,比较擅长做范围查询).
Map集合主要实现类:HashMap,HashTable(hashmap可以存空键值,hashtable线程安全)
HashMap:采用哈希表算法,此时Map中的key不会保证添加的先后顺序,key也不允许重复.key判断重复的标准是: key1和key2是否equals为true,并且hashCode相等。
HashMap的常用方法:put(),get(),keySet(),entrySet(),getKey(),getVvalue()等等。
TreeMap:采用红黑树算法,此时Map中的key会按照自然顺序或定制排序进行排序,key也不允许重复.key判断重复的标准是:compareTo/compare的返回值是否为0。
LinkedHashMap:采用链表和哈希表算法,此时Map中的key会保证先后添加的顺序,key不允许重复.key判断重复的标准和HashMap中的key的标准相同。
Hashtable:采用哈希表算法,是HashMap的前身(类似于Vector是ArrayList的前身)打死不用。在Java的集合框架之前,表示映射关系就使用Hashtable.所有的方法都使用synchronized修饰符,线程安全的,但是性能相对HashMap较低。
Properties:Hashtable的子类,此时要求key和value都是String类型.用来加载资源文件(properties文件(IO再讲)).
Iterator 迭代器:
hasNext():如果迭代具有更多元素,则返回 true
next():返回迭代中的下一个元素。
remove():从底层集合中删除此迭代器返回的最后一个元素(可选操作)
Stack 堆栈:后进先出,只能在一端进行插入称为"压栈"或删除(称为"出栈")数据的操作
Queue 队列:先进先出,它只允许在表的前端进行删除操作,而在表的后端进行插入操作。
2、集合框架关系图