A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李红飞 中级黑马   /  2012-5-29 00:41  /  2731 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

看到一道面试题:
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的具体区别?最后用代码证明一下?

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1

查看全部评分

6 个回复

倒序浏览
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));   
        }     
    }   
}   

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
我想问的是他们之间有什么是相同的么。。
回复 使用道具 举报
本帖最后由 贾旭 于 2012-5-29 09:59 编辑

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

Collections是对集合框架操作的一个工具类,比如可以对集合进行个排序,插入什么的.
回复 使用道具 举报
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

回复 使用道具 举报
这么来说吧
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
        }
}
应该能明了吧

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
哥们以后记好了。
Collection是一个接口、Collecrtions是 一个类。(即后面加 s 的是一个类,不加就是接口)
Collection接口:可以用多态的方式,去创建不同类型的集合。但不会对集合提供帮助性的方法。
Collecrtions类:是类就会生成对象,有对象就会有方法,它提供了一系列静态的方法,方便集合的特殊操作。比如:各种集合的搜索、排序、线程安全化等操作
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马