集合概述及Collection接口的常用方法

java集合像是一种容器,可以动态的把多个对象的引用放到容器中

java的集合类可以用于存储数量不等的多个对象,还可以用于保存具有映射关系的关联数组

package com.aff.coll;

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

import org.junit.Test;

/*
 1.存储对象可以考虑: ①数组 ②集合
 2.数组存储对象的特点:Student[] stu = new  Student[20]; stu[0] = new Student();
                            弊端:①一旦创建,其长度不可变,②真实的数组存放的对象的个数是不可知的
 java集合可分为Collection和Map两个体系
 Collection接口:
                set:元素无序,不可重复的集合
                list:元素有序,可重复的集合  ----    "动态"数组
 Map接口:具有映射关系 "key-value对" 的集合
 */
public class TestCollection {
    @Test
    public void testCollection2() {
        Collection coll = new ArrayList();
        coll.add(123);
        coll.add("AA");
        coll.add(new Date());
        coll.add("BB");
        coll.add(new Person("mm", 13));

        // .contains(Object obj); 判断集合中是否包含指定的obj元素,如果包含,返回true,反之返回false
        // 判断的依据:根据元素所在的类的equals()方法进行判断
        // 如果存入集合中的元素是自定义类的对象,要求:自定义类要重写equals() 方法
        boolean b1 = coll.contains(123);
        System.out.println(b1);// true
        System.out.println(coll.size());
        boolean b2 = coll.contains(new Person("mm", 13));
        System.out.println(b2);// true

        // .containsAll(Collection coll); 判断当前集合中是否包含coll中所有的元素
        Collection coll1 = new ArrayList();
        coll1.add(123);
        coll1.add(new String("AA"));
        boolean b3 = coll.containsAll(coll1);
        System.out.println(b3);// true

        // .retainAll(Collection coll); 取两个集合中的交集

        // .remove( Object obj); 删除集合中的obj元素。 若删除成功返回true,否则返回false
        boolean b4 = coll.remove("BB");
        System.out.println(b4);// true

        // .removeAll(Collection coll);从当前集合中删除包含在coll中的元素
        coll.removeAll(coll1);
        System.out.println(coll);

        // .equals(Object obj); 判断两个集合中的所有元素完全是否相同
        System.out.println(coll1.equals(coll));

        // .hashCode(); 算集合中的哈希值,
        System.out.println(coll.hashCode());

        // .toArray(); 将集合转换为数组
        Object[] obj = coll.toArray();
        for (int i = 0; i < obj.length; i++) {
            System.out.println(obj[i]);
        }

        // iterator();  返回一个Iterator接口实现类的对象,进而实现集合的遍历
        Iterator iterator = coll.iterator();
        /*
         * for (int i = 0; i < coll.size(); i++) {
         * System.out.println(iterator.next()); }
         */
        // 方式二:
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }
    }

    @Test
    public void testCollection1() {
        Collection coll = new ArrayList();
        // .seze(); 返回集合元素的个数
        System.out.println(coll.size());

        // .add(Object obj);向集合中添加一个元素
        coll.add(123);
        coll.add("AA");
        coll.add(new Date());
        coll.add("BB");
        System.out.println(coll.size());// 4

        // .addAll(c);将形参coll中包含的所有元素添加到当前集合中
        Collection coll1 = Arrays.asList(1, 2, 3);// 数组转换为集合
        coll.addAll(coll1);
        System.out.println(coll.size());// 7
        System.out.println(coll);// ArrayList重写了toString方法所以打印了集合中的元素

        // .isEmpty(); 判断集合是否为空
        System.out.println(coll.isEmpty());

        // .clear(); 清空集合元素
        coll.clear();
        System.out.println(coll.isEmpty());
    }
}

猜你喜欢

转载自www.cnblogs.com/afangfang/p/12583193.html
今日推荐