在Java中,虽然两者看着只是相差一个字母,但是区别很大,二者的区别是:
1.java.util.Collection 是一个集合接口。它提供了对集合进行基本操作的通用接口方法,实现该接口的类主要有List,Set,集合的体系如下:
---| Collection: 单列集合的根接口
-------| List 特点是:有序,可重复,有序是指的存储有序
-------------| ArrayList:底层是使用数组实现的,所以查询快,增删慢,非线程安全
-------------| LinkedList:底层是使用链表实现的,所以增删快,查询慢,非线程安全
-------------| Vector:与ArrayList原理相同,但线程安全(使用了synchronization),效率略低
-------| Set 特点是:无序,不可重复
-------------| HashMap:根据键的hashCode值存储数据,可以通过键获取它的值,采用了hash法进行索引,最多允许一条记录的键为空
-------------| HashTable:
-------------| LinkedHashMap:
-------------| TreeMap:
2.java.util.Collections 是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。若在使用Collections类方法时,对应的collection的对象为空,则都会抛出NullPointerException,Collections使用示例如下:
import Java util.*;
public class Test{
public static void main(String args[ ]){
List<Integer> list=new LinkedList<Integer>();
int[] arr={1,7,3,2,5};
for(int i=0;i<arr,length;i++){
list.add(new Integer(arr[i]));
}
Collections.sort(list);//对list中的元素进行排序
for(int i=0;i<arr.length;i++){
System.out.println(list.get(i));//输出结果为1,2,3,5,7
}
}
}
参考资料:
1.《Java程序员面试笔试宝典》何昊,薛鹏,叶向阳编著
2.http://pengcqu.iteye.com/blog/492196