黑马程序员技术交流社区

标题: Collection和Collections的区别 [打印本页]

作者: 李红飞    时间: 2012-5-29 00:41
标题: Collection和Collections的区别
看到一道面试题:
public class SimpleCollection {

  public static void main(String[] args) {

  Collection c = new ArrayList();

  for(int i = 0; i < 10; i++)

  c.add(Integer.toString(i));

  Iterator it = c.iterator();

  while(it.hasNext())

  System.out.println(it.next());

  }

  }
上面说collections类是针对集合类的一个帮助类.它提供一系列的静态方法对各种集合的搜索,排序,线程安全化等操作.
不太懂他的含义?
请教Collection和Collections的具体区别?最后用代码证明一下?
作者: 林翔    时间: 2012-5-29 00:50
Collection是个java.util下的接口,它是各种集合结构的父接口。
Collections是个java.util下的类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。。
Collection 层次结构中的根接口。Collection 表示一组对象,这些对象也称为 collection的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。JDK 不提供此接口的任何直接
实现:它提供更具体的子接口(如 Set 和 List)实现。此接口通常用来传递 collection,并在需要最大普遍性的地方操作这些 collection。
import java.util.ArrayList;   
import java.util.Collections;   
import java.util.List;      
public class TestCollections {     
    public static void main(String args[]) {   
           //List是实现Collection接口的   
        List list = new ArrayList();   
        double array[] = { 112, 111, 23, 456, 231 };   
        for (int i = 0; i < array.length; i++) {   
            list.add(new Double(array[i]));   
        }   
        Collections.sort(list);    //使用Collections的sort()方法对List进行排序
        for (int i = 0; i < array.length; i++) {   
            System.out.println(list.get(i));   
        }     
    }   
}   
作者: 闾丘日月    时间: 2012-5-29 01:49
我想问的是他们之间有什么是相同的么。。
作者: 贾旭    时间: 2012-5-29 09:57
本帖最后由 贾旭 于 2012-5-29 09:59 编辑

楼主你觉得直接翻出一道大家都知道的面试题出来有意思么.
这两个有相同的地方吗?
Collection是集合框架的顶层接口,

Collections是对集合框架操作的一个工具类,比如可以对集合进行个排序,插入什么的.
作者: 陆建平    时间: 2012-5-29 09:59
Collection 和 Collections的区别。
Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。

Collection是个java.util下的接口,它是各种集合结构的父接口。

List, Set, Map是否继承自Collection接口? List,Set是  Map不是

ArrayList和Vector的区别。

一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的
二.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半

HashMap和Hashtable的区别

一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现

二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的

三.值:只有HashMap可以让你将空值作为一个表的条目的key或value


作者: 胡团乐    时间: 2012-5-29 10:02
这么来说吧
Collections 就是一个java的工具类 不能new对象,里面包含了很多static方法可以直接调用使用 大多时候用于操作集合类如Arraylist LinkedList等
Collection  是一个集合接口 List Set都是实现了Collection接口的接口 而Arraylist LinkedList是实现了List接口的具体实现类;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;

public class TestCollections {

        public static void main(String[] args) {
                Collection<Integer> cc=new ArrayList<Integer>();
                cc.add(2);
                cc.add(8);
                cc.add(10);
                cc.add(4);
                cc.add(3);
                //可以直接使用Collections.(static方法)的方式使用
                //调用Collections的max()方法
                int max=Collections.max(cc);   //返回一个集合里的最大值
                System.out.println(max);      //10
        }
}
应该能明了吧
作者: 黑马张健    时间: 2012-5-29 10:07
哥们以后记好了。
Collection是一个接口、Collecrtions是 一个类。(即后面加 s 的是一个类,不加就是接口)
Collection接口:可以用多态的方式,去创建不同类型的集合。但不会对集合提供帮助性的方法。
Collecrtions类:是类就会生成对象,有对象就会有方法,它提供了一系列静态的方法,方便集合的特殊操作。比如:各种集合的搜索、排序、线程安全化等操作




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2