Java——集合的基本功能测试

* 1,boolean add<E,e>  添加
 * 确保此 collection 包含指定的元素(可选操作)。
 * 参数:e - 确定此 collection 中是否存在的元素。E - 代表Object类,说明该add可以添加任何对象,任意对象都是Object的子类对象,要么是直接子类要么是间接子类
 * 返回:如果此 collection 由于调用而发生更改,则返回 true ;返回一个bool类型,所以要用bool类型去接收 
 * add方法,如果是List集合一直都返回true,因为List集合中是可以存储重复元素的;如果是Set集合,当存储重复元素的时候,就会返回false
 * 
 * 2,boolean remove(Object o)  删除指定元素
 * 从此 collection 中移除指定元素
 * 参数:o - 要从此 collection 中移除的元素(如果存在)。 
 * 返回:如果此调用将移除一个元素,则返回 true 
 * 
 * 3,void clear()   清空集合
 * 移除此 collection 中的所有元素(可选操作)。
 * 
 * 4,boolean contain(Object o)  判断集合是否包含某个元素
 * 如果此 collection 包含指定的元素,则返回 true。
 * 参数:o - 测试在此 collection 中是否存在的元素。 
 * 返回:如果此 collection 包含指定的元素,则返回 true 
 * 
 * 5,boolean isEmpty()  判断集合是否是空
 * 如果此 collection 不包含元素,则返回 true。 
 * 
 * 6,int size()     获取集合在元素的个数
 * 返回此 collection 中的元素数。
package com.wsq.collection;

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

import com.wsq.bean.Student;
public class Demo2_Collection {
    public static void main(String[] args) {
    demo1();
    demo2();

    }

    private static void demo2() {
        Collection c = new ArrayList();         //父类引用指向子类对象;Collection是接口,不能去new对象,不能被实例化  
        //因为Collection是一个接口,不能被实例化也不能new对象,但是它的子类ArrayList是个具体的类,可以new对象
        c.add("a");                             //由demo1可以知道,add的返回值都是true,就没有必要定义返回值了,直接添加就行 
        c.add("b");
        c.add("c");
        c.add("d");

        //c.remove("b");                        //删除指定元素,输出结果为:[a, c, d] 
        //c.clear();                            //清空集合,输出结果结果为:[]

        //System.out.println(c);            

        //System.out.println(c.contains("b"));  //判断集合是否包含某个元素,输出结果为:true,说明集合中包含 b 这个元素
        //System.out.println(c.isEmpty());      //判断集合是否是空;若为空,返回true;若不为空,返回false
        //System.out.println(c.size());         //获取集合在元素的个数,输出结果为4,即集合中有a,b,c,d四个元素
    }

    public static void demo1(){
        Collection c = new ArrayList();                         //父类引用指向子类对象

        boolean b1 = c.add("abc");     
        boolean b2 = c.add(true);                               //自动装箱new Boolean(true);相当于把true封装成对象给添加进来
        boolean b3 = c.add(100);
        boolean b4 = c.add(new Student("张三",23));               //new Student("张三",23);这个是自定义对象,也就相当于父类引用指向子类对象
        boolean b5 = c.add("abc");
        //在调用add方法的时候,编译的时候,执行的是左边Collection里面的方法,而运行的时候,执行的是ArrayList里面的方法
        //即编译看的是父类,运行看的是子类
        System.out.println(b1);                                 //输出结果为:true
        System.out.println(b2);                                 //输出结果为:true
        System.out.println(b3);                                 //输出结果为:true
        System.out.println(b4);                                 //输出结果为:true
        System.out.println(b5);                                 //输出结果为:true,b1是一样的,返回也是true

        /**
         * add这个方法是Collection具备的,Collection有两个之间的子接口,一个是Set,一个是List
         * List里面是可以存储重复的,而Set里面不可以存储重复的,当在Set集合里面存储重复的元素的时候,就会返回false
         * List集合这边可以存储重复,一直返回true就行
         * Set集合这边不可以存储重复,只有有重复的元素就返回false      
         * 所以我们在平常写添加的时候,这个返回值类型一般不写,因为都true,没有意义
         * 
         * */

        System.out.println(c);                                  //上下两行代码输出结果一样,说明已经被重写了toString方法,ArrayList这个类重写了toString方法
        System.out.println(c.toString());                       
    }

}

猜你喜欢

转载自blog.csdn.net/qq_41264055/article/details/81285626