Java Collection集合方法

  • 一、简单方法

package cn.itcast.day15;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;

/**
 * 集合的由来:
 *             我们学习的是面向对象语言,而面向对象语言对事物的描述是通过对象体现的,为了方便对多个对象进行操作,我们就必须把这多个对象进行存储。
 *             而要想存储多个对象,就不能是一个基本的变量,而应该是一个容器内的对象,在我们目前所学的知识里面,有哪些是容器类型的呢?
 *             数组和StringBuffer。但是呢?StringBuffer的结果是一个字符串,不一定满足我们的要求,所以我们只能选择数组,这就是对象数组。
 *             而对象数组又不能适应变化的需求,因为数组的长度是固定的,这个时候,为了适应变化的需求,Java就提供了集合类型供我们使用。
 * 
 * 数组和集合的区别:
 *         A:长度区别
 *             数组的长度固定
 *         B:内容不同
 *             数组存储的是一种类型的元素
 *             而集合中存储不同类型的元素
 *        C:元素的数据类型不同 
 *            数组可以存储基本类型,也可以存储引用类型
 *            集合只能存储引用类型
 *
 *    刚说过集合是存储多个元素的,但是呢,存储多个元素我们也是有不同需求的:比如说,我要这多个元素中不能有相同的元素。
 *    再比如说,我要这多个元素按照某种规则排序一下。针对不同的需求,Java就提供了不同的集合类,这样呢,Java就提供了很多个集合类。
 *    这多个集合类的数据结构不同,结构不同不重要,重要的是你要能够存储东西,并且还要能够使用这些东西,比如说判断、获取等。
 *    既然这样,那么,这多个集合类是有共性的内容的,我们把这些集合类的共性内容不断的向上抽取,最终就能形成集合的继承体系结构。
 *
 *    数据结构:数据的存储方式。
 *
 *    Collection: 世界欧股的顶级接口,它的子体系有重复的,有唯一的,有有序的,有无序的。(后面慢慢讲到)
 *    
 *    Collection的功能概述:
 *    1: 添加功能
 *         boolean add(E e):向集合中添加一个元素
 *         boolean addAll(Collection<? extends E> c):向集合中添加一个集合
 *    2: 删除功能
 *        void clear():移除掉集合中所有的元素
 *        boolean remove(Object o)删除集合中某一个元素  
 *        boolean removeAll(Collection<?> c):移除集合中指定的集合元素 
 *    3: 判断功能
 *        boolean contains(Object o):判断集合中是否包含指定元素
 *        boolean containsAll(Collection<?> c):判断集合中是否包含指定集合中的所有元素
 *        boolean isEmpty():判断集合是否为空    
 *    4: 获取功能
 *        Iterator<E> iterator():返回迭代集合时的迭代器(重点)
 *    5: 长度功能
 *        int size():集合的长度
 *    6: 交集功能
 *        boolean retainAll(Collection<?> c):两个集合都有的元素
 *    7:转换功能
 *         Object[] toArray():将集合转换成Object对象数组---和Arrays  static <T> List<T>  asList(T... a) 相对应
 *        
 */


public class CollectionDemo {
        public static void main(String[] args) {
            Collection c = new ArrayList();
            //boolean add(E e):向集合中添加一个元素
            c.add("abc1");
            c.add("abc2");
            c.add("abc3");
            c.add("abc4");
            
            //void clear():移除掉集合中所有的元素
            //c.clear();
            
            //boolean remove(Object o)删除集合中某一个元素  
            //c.remove("abc5");
            
            //boolean contains(Object o):判断集合中是否包含指定元素
//            System.out.println(c.contains("123"));//flase
//            System.out.println(c.contains("abc2"));//true
            
            //boolean isEmpty():判断集合是否为空 
            //System.out.println("isEmpty: "+c.isEmpty());
            
            //int size():集合的长度
//            System.out.println("size(): "+c.size());//4
//            c.remove("abc1");
//            System.out.println("size(): "+c.size());//3
            
            Object[] objs=c.toArray();
            for(int i=0;i<objs.length;i++){
                Object obj=objs[i];
                System.out.println(obj);
            }
            
            c=Arrays.asList(objs);
            System.out.println("c:"+c);
            
        }
}
  • 二、高级方法

package cn.itcast.day15;

import java.util.ArrayList;
import java.util.Collection;

/**
 * 
 * 
 * Collection集合的高级功能测试
 * xxAll方法测试
 * boolean addAll(Collection<? extends E> c):向集合中添加一个集合
 * boolean removeAll(Collection<?> c):移除集合中指定的集合元素 
 * boolean containsAll(Collection<?> c):判断集合中是否包含指定集合中的所有元素
 * boolean retainAll(Collection<?> c):两个集合都有的元素  返回:如果此 collection 由于调用而发生更改,则返回 true 

 */
public class CollectionDemo2 {
    public static void main(String[] args) {
        Collection c1 = new ArrayList();
        c1.add("abc1");
        c1.add("abc2");
        c1.add("abc3");
        c1.add("abc4");

        
        Collection c2 = new ArrayList();
        c2.add("abc1");
        c2.add("abc2");
        c2.add("abc3");
        c2.add("abc4");
        c2.add("abc5");
        c2.add("abc6");
        c2.add("abc7");
        

//        c1.addAll(c2);
        
        //System.out.println(c1.removeAll(c2));
        
//        System.out.println(c1.containsAll(c2));
//        System.out.println(c1.retainAll(c2));
        
        System.out.println(c1);
        System.out.println(c2);
    } 
}

posted @ 2015-02-07 17:30  刘江龙  阅读(1321)  评论(0编辑  收藏  举报