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

© 魏-玉-彪 中级黑马   /  2012-7-24 18:02  /  2571 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package org.container;
import java.util.*;
public class UseCollection {
                public static void main(String[] args) {
                        Collection<String> collection = new ArrayList<String>(Arrays.asList(
                                        "A", "B", "C", "D", "E"));                                        // 创建容器       
                        String[]strArray = { "F", "G", "H", "I", "J" };               
                        collection.addAll(Arrays.asList(strArray));
                        Collections.addAll(collection, "M", "N", "O", "P", "Q");
                        System.out.println(collection);
                        //迭代容器中的每一个元素
                        for(Iterator it = collection.iterator();it.hasNext();){       
                                System.out.print(it.next() + " ");
                        }
                        System.out.println();
                        for (String i : collection) {
                                System.out.print(i + " ");
                        }
                        System.out.println();
                        collection.remove("A");                                                        // 移除一个元素
                        for (String i : collection) {
                                System.out.print(i + " ");
                        }
                        Collection<String> part = new ArrayList<String>(Arrays.asList(
                                        "B", "C", "D", "E"));
                        System.out.println();
                        collection.retainAll(part);                                                        // 保存相同的元素
                        for (String str : collection) {
                                System.out.print(str + " ");
                        }
                        System.out.println();
                        Object[]o = collection.toArray();                                                // 返回一个数组
                        System.out.println(Arrays.deepToString(o));
                        collection.removeAll(collection);                                                // 移除所有的元素
                        System.out.println(collection.size());
                }
}

1以上代码中,创建容器为什么是:Collection<String> collection = new ArrayList<String>(Arrays.asList(
                                        "A", "B", "C", "D", "E"));                                        // 创建容器       
2String[]strArray = { "F", "G", "H", "I", "J" };               
                        collection.addAll(Arrays.asList(strArray));
                        Collections.addAll(collection, "M", "N", "O", "P", "Q");//为何这里用的是Collections大写?
3
                       

评分

参与人数 1技术分 +1 收起 理由
田向向 + 1 鼓励一下,继续加油

查看全部评分

8 个回复

倒序浏览
1,构造一个包含指定 元素的集合,有初始化值,Arrays.asList( )返回一个list集合,所构造的集合一创建里面就有元素。

2,Collections  是一个工具类,里面的方法都是静态的,所以都是类名.方法名,而collection是一个集合的引用,楼主要看清楚喽!

评分

参与人数 2技术分 +1 黑马币 +2 收起 理由
魏-玉-彪 + 2
田向向 + 1 你技术分达标了

查看全部评分

回复 使用道具 举报
for (String str : collection) {
                                System.out.print(str + " ");


这个for 循环怎么解释? 请详细分步 注释
回复 使用道具 举报
魏-玉-彪 发表于 2012-7-24 18:50
for (String str : collection) {
                                System.out.print(str + " ");

用增强for循环打印collection引用的集合中的元素,这需要解释吗
回复 使用道具 举报
1、规定Collection集合中只能存入String类型的元素,在创建Collection集合时,把一个ArrayList集合赋值给Collection集合
2、小写的collection是集合的名字,大写的Collection是一个Java类,直接用类名.方法名调用里面的静态方法
回复 使用道具 举报
1.Collection是单列集合的接口,不能直接创建对象,List接口继承了Collection接口,而ArrayList实现了List接口,所以ArrayList也是Collection的后代,这里就可以使用多态了,<String>是泛型,是指这个集合中只能存放String类型的对象,泛型在编译时检查。
2. Collections是操作集合的一个工具类,它里面提供了一些常用的static方法,addAll()方法是将一系列数据添加到指定集合中。

回复 使用道具 举报

1以上代码中,创建容器为什么是:Collection<String> collection = new ArrayList<String>(Arrays.asList(
                                        "A", "B", "C", "D", "E"));                                        // 创建容器        
2String[]strArray = { "F", "G", "H", "I", "J" };               
                        collection.addAll(Arrays.asList(strArray));
                        Collections.addAll(collection, "M", "N", "O", "P", "Q");//为何这里用的是Collections大写?
3



1:Collection<String> collection = new ArrayList<String>(Arrays.asList(
                                        "A", "B", "C", "D", "E"));   
   这个叫面向接口编程,举个例子:Collection 指车子吧,那么那么ArrayList就指具体的一辆车子了,比如说你的
坐骑。就好像你在说,我的坐骑也是车子。              子类是父类,但是你要是说车子是你的坐骑,那就有点问题了,
就好像说车子是时自行车,那么其他的车子干嘛去了?只能给你这样打比喻了,以后慢慢在理解吧

2:大哥注意看,Collections 和collection是不同一个东西,前者是一个专门用来操作集合的工具类,而
        后者是你自己创建的一个对象。看起来长得像而已,Collections是为Collection的对象服务的专业工具。哥们
看仔细了。



回复 使用道具 举报
谢谢各位大侠,本问题已解决
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马