JCF(Java Collections Framework)是Java提供的集合框架,对一些数据结构和相关算法进行封装。从面向对象上来说,集合是一种特殊的对象:对象的容器,用于存储、检索、操纵和传输对象。
这里不得不提的是集合和数组的关系,二者功能相近。但集合更灵活,因为其元素数据类型可不同,且集合长度可变。
下面是一些常用的,
一. 集合(Collection)和映射(Map)的区别;
集合:存放单一元素;
映射:存放键值对;
二. List和Set的区别;
List:1.有序的集合(是指和存放的顺序相同);
2.元素可重复;
Set:1.无序的集合;
2.元素不可重复;
三. ArrayList和Vector;
首先二者皆是数组结构
不同:
- 出现版本不同:Vector是JDK1.0的集合类,ArrayList是JDK1.2的集合类
- 线程安全不同:Vector线程是安全的,ArrayList线程不安全
四. ArrayList和LinkedList区别
1.数据结构不同:ArrayList是数组结构、LinkedList是链表结构
2.性能不同:
A. 从最后增加和删除元素:ArrayList快;
B. 从中间和最前面增删元素:LinkedList快;
C. 查询或者遍历:ArrayList快;
五.HashSet和TreeSet的区别;
1.HashSet不能排序、TreeSet能排序;
2.HashSet效率高;
这里还要提到的是JCF中两个常用的算法类:Collections 和 Arrays;
其中Collocations 主要提供在 Collection上进行操作和返回 Collection的静态方法,如:排序、替换、拷贝和查找等;
Arrays提供用来操作数组的各种方法。此类还包含一个允许将数组作为列表来查看的方法(asList方法)。