Thinking in Java——集合(Collection)

一、ArrayList的使用(略)

二、容器的基本概念

(一)、Collection是集合类的基本接口

主要方法:

public interface Collection<E>{
  boolean add(E element);//向集合中添加元素,E代表泛型
  Iterator<E> iterator();//返回实现了Iterator接口的对象
}

关于:Iterator之后讲解。

(二)、实现了Collection的子类:

List:按照顺序插入保存元素。                  Set:该容器内不能有重复的元素                     Queue:按照队列的规则决定对象的顺序

(三)、Map接口

定义:一组成对的“键值对”对象,使用key查找value

注:这是单独的接口,不属于Collection

(四)、根据上诉分析使用容器

1、ArrayList向上转型为Collection,并通过Collection添加处理数据。(运用到的技术:父类引用指向子类对象,调用子类的方法)

public class UpToCollection {
    public static void main(String [] args){
        ArrayList<Integer> arrayList = new ArrayList();
        for(int i=0; i<5; ++i){
            arrayList.add(i);
        }
        Collection<Integer> collection = arrayList;
        collection.add(5);
        //这里使用了foreach循环,只要实现了Iterator接口就能够使用foreach
        //Collection没有List的get方法,需要用Iterator来进行遍历
        for(Integer i: collection){
            System.out.println(i);
        }
    }
}

2、添加一组元素

public class AddElementToCollection {
    public static void main(String[]args){

        Collection<Integer> collection = new ArrayList<Integer>(Arrays.asList(1,2,3,4,5,6));
        //知识点1:利用Arrays这个静态类,将数组,或者一列数字转换为List
        //知识点2:ArrayList可以嵌套List创建
        /*知识点3:为什么不可以Collection<Integer> collection =
         * Arrays.asList(1,2,3,4,5,6);,发现创建并没有问题,但是到下文的时候使用
         * collection.addAll(Arrays.asList(datas));是会报错的
         * 原因:因为Arrays.asList(1,2,3,4,5,6)创建的List是固定长度的List
         * 所以是无法执行add()方法的。
         */
        Integer [] datas = {7,8,9,10};
        /*知识点4:必须使用Integer作为类,不能使用int,否则会报错
         *因为之前Collection<Integer> collection,已经将泛型定为Integer
         *所以不能使用引用类型,得到输入的泛型是什么,就需要建立什么类的数组
        */
        collection.addAll(Arrays.asList(datas));
        for(Integer i: collection){
            System.out.println(i);
        }
        //上文为通过Collection往List中添加一组数据(数组,或者自定义的数据),下文介绍另一种方法

        Collections.addAll(collection, 11,12,13,14,15,16);
        Collections.addAll(collection, datas);
        //注:这是Collections类不是Collection类
    }
}

AddElementToCollection

Collection添加元素的方法  优点:方法运行效率快。  缺点:但是需要创建一个Collection类,来作为对象

Collections添加元素的方法 优点:方便,不需要创建Collection类。

3、Collection类型的作用:统一类型添加,删除。。。(统一遍历是由Iterator确定的)

public class CollectionEffect {
    //统一各种容器,只需要一种方法就能添加,删除
    public static void main(String[] args){
        print(fill(new ArrayList<String>()));
        print(fill(new HashSet<String>()));
        print(fill(new HashMap<String,String>()));
    }
    //Collection接口的集合
    public static Collection<String> fill(Collection<String> c){
        c.add("dog");
        c.add("cat");
        c.add("pig");
        return c;
    }
    //重载fill方法,提供Map接口
    public static Map<String,String> fill(Map<String,String> map){
        map.put("dog", "pig");
        map.put("cat","small");

        return map;
    }

    public static void print(Collection<String> c){

    }

    public static void print(Map<String,String> map){

    }
}

CollectionEffect

三、迭代器(Iterator)

作用:统一遍历各种容器

接口方法:

public interface Iterator<E>{
  E next();//获取下一个元素
  boolean hasNext();//查看是否存在下一个元素
  void remove();//移除元素
}

Iterator

时间: 2024-07-30 14:01:44

Thinking in Java——集合(Collection)的相关文章

Java集合 - Collection

Ref:http://blog.csdn.net/liulin_good/article/details/6213815  http://www.cnblogs.com/averey/p/4306166.html 一.java.util.Iterator<E>接口 迭代器 1 package java.util; 2 3 public interface Iterator<E>{ 4 // Return true iteration has more elements 5 bool

java集合 - Collection - List - Set - Map - Iterator 学习笔记

1.Collection接口 集合可以理解为一个动态的对象数组,两层含义: 1).动态:集合中的对象可以任意扩充和删减: 2).集合中可以存放任意对象. 集合的性能比数组高,而且更容易进行数据的扩展和修改. Collection的常用子接口:List.Set.Queue. 2.List接口 List集合可以存放任意对象,而且集合中对象可以重复. List的常用实现类:ArrayList.Vector. ArrayList与Vector的比较: 性能方面:ArrayList采用异步处理方式,性能高

java集合Collection接口

collection集合 Map集合 Collection接口 Collection接口是List.Set和Queue接口的父接口,该接口里定义的方法既可用于操作Set集合,也可用于操作List和Queue集Collection提供了大量添加.删除.访问的方法来访问集合元素.主要的方法如下:

java集合 Collection,Map

大致分为Set,List,Queue,Map四种体系 Set代表无序不可重复的集合,通过元素本身访问 List代表有序可重复的集合,通过元素索引访问 Map代表有映射关系的集合,通过key访问 Queue代表一种队列集合的实现 Collection接口是List,Set,Queue的父接口,定义了如下操作集合方法:add,addAll,clear,contains,containsAll,isEmpty,iterator,remove,removeAll,retainAll,insize,toA

Java 集合Collection——初学者参考,高手慎入(未完待续)

1.集合简介和例子 Collection,集合.和数学定义中的集合类似,把很多元素放在一个容器中,方便我们存放结果/查找等操作. Collection集合实际上是很多形式集合的一个抽象. 例如十九大就要召开,那么到人民大会堂与会的人就是一个集合 ,这个集合里装载了许多元素,每个元素就是一个人大代表. 再比如北京的全聚德烤鸭非常出名,每天都有人排队购买,这个队也是一个集合. 上面这两个例子就展示了两个不同的集合,人大代表的集合其实就是一个简单的聚合,把若干元素集中在一起.第二个例子,排队就具有比较

Java集合—Collection篇

说到Collection集合不得不提的就是数组,Java中的数组为我们存储大量的数据提供了很大的方便,但 是数组也有很多缺点,不够灵活 1.数组被定义后长度就是固定的,但是实际开发中数据长度常常是不固定的 2.数组中只能存放同种类型的数据,但是要在一个数组中存放多种数据类型的数据就不行了 为了解决数组的弊端,集合就应声而出 一.Collection集合体系简介 集合是用来存放多个元素,由于底层数据结构的不同,Java就提供了多种集合类,而这些集合类都有共 性的东西,然后不断向上抽取这些公性,便形

java集合Collection的List ArrayList LinkedList 区别

概述 1.List的特点:线性顺序存储元素.元素可重复.可以存放null 2.ArrayList.LinkedList 一.List特点 如此图所示,List的存储形式是一个线性的结构,所以它可以重复,也可以存null.当然具体子类是怎么实现的,各有各个的形式. 二.关于List的方法 大部分这里都不会像介绍Collection接口那样逐一解释了.只讲部分使用时比较特殊点的. List<E> subList(int fromIndex, int toIndex) 待续....

【转】Java 集合系列04之 fail-fast总结(通过ArrayList来说明fail-fast的原理、解决办法)

概要 前面,我们已经学习了ArrayList.接下来,我们以ArrayList为例,对Iterator的fail-fast机制进行了解.内容包括::1 fail-fast简介2 fail-fast示例3 fail-fast解决办法4 fail-fast原理5 解决fail-fast的原理 转载请注明出处:http://www.cnblogs.com/skywang12345/p/3308762.html 1 fail-fast简介 fail-fast 机制是java集合(Collection)中

Java 集合系列04之 fail-fast总结(通过ArrayList来说明fail-fast的原理、解决办法)

概要 前面,我们已经学习了ArrayList.接下来,我们以ArrayList为例,对Iterator的fail-fast机制进行了解.内容包括::1 fail-fast简介2 fail-fast示例3 fail-fast解决办法4 fail-fast原理5 解决fail-fast的原理 转载:http://www.cnblogs.com/skywang12345/p/3308762.html 1 fail-fast简介 fail-fast 机制是java集合(Collection)中的一种错误