Collection,Collection的迭代器(Iterator)

Collection的体系结构

在这里插入图片描述

Collection基本功能:

添加:

boolean add(Object e):添加元素  E(Element)

删除:

void clear() 暴力删除(将集合的素有元素全部干掉)
boolean remove(Object o):从集合中删除指定的元素

获取集合的元素数

int size():

判断功能:

boolean isEmpty():判断集合是否为空,为空元素,则返回true
boolean contains(Object o):判断集合中是否包含指定元素,包含则返回true

Collection的高级功能

boolean addAll(Collection c):添加一个集合中的所有元素
boolean containsAll(Collection c):包含一个集合中的所有元素
boolean removeAll(Collection c):删除集合中的所有元素, (删除一个算删除)(必须同时都被包含进去)
boolean retainAll(Collection c):A集合对B集合求交集,交集的元素是保存在A集合中, 
	boolean的返回值意思是看A集的元素如果有变化,返回true;没有变化,则返回false
public class CollectionDemo2 {
    public static void main(String[] args) {

        //创建两个Collection集合对象
        Collection c1 = new ArrayList() ;
        c1.add("abc1") ;
        c1.add("abc2") ;
        c1.add("abc3") ;
        c1.add("abc4") ;
       /* c1.add("abc5") ;
        c1.add("abc6") ;
        c1.add("abc7") ;*/
      /*  c1.add("abc5") ;
        c1.add("abc6") ;
        c1.add("abc7") ;*/
        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") ;
        System.out.println(c1);
        System.out.println(c2);
        System.out.println("---------------------------------");

        //boolean addAll(Collection c):添加一个集合中的所有元素
       // System.out.println(c1.addAll(c2));
        //boolean containsAll(Collection c) :包含所有的元素算包含...
      //  System.out.println(c1.containsAll(c2));

        //boolean removeAll(Collection c):删除集合中的所有元素, (删除一个算删除,还是删除所有):删除一个算删除(必须同时都被包含进去)
       // System.out.println(c1.removeAll(c2));

        // boolean retainAll(Collection c):A集合对B集合求交集, boolean的返回值是什么意思,交集的元素是保存在A中还是B中

        /**
         * A集合堆B集合求交集,交集的元素存储在A集合中,然后返回值的意思: 看A集合的元素是否有变化(之前的元素和现在交集的元素进行对比)
         * 如果有变化,返回true;没有变化,则返回false
         *
         */

        System.out.println(c1.retainAll(c2)); //c1集合对c2集合取交集
        System.out.println(c1);
        System.out.println(c2);

        System.out.println("-------------------------------------------");

        //使用Colllection存储5个学生(姓名,年龄,性别),然后将Collection进行遍历,获取出来每一个学生的信息!
        //创建一个Collection集合对象
        Collection c = new ArrayList() ;

        //创建5个学生
        Student s1 = new Student("宋江",45,"男") ;
        Student s2 = new Student("李逵",35,"男") ;
        Student s3 = new Student("武大郎",35,"男") ;
        Student s4 = new Student("西门庆",30,"男") ;
        Student s5 = new Student("吴用",40,"男") ;

        //存储集合中
        c.add(s1) ;
        c.add(s2) ;
        c.add(s3) ;
        c.add(s4) ;
        c.add(s5) ;

        //  Object[] toArray():将集合转换成了对象数组
        Object[] objs = c.toArray();//数组存储的每一个数据类型 Object obj = new Student() ; //向上转型
        //遍历数组
        for(int x = 0 ; x < objs.length ; x ++){
            //System.out.println(objs[x]) ;
            //getXXX()---->Student类的方法
            Student student = (Student) objs[x]; //向下转型
            System.out.println(student.getName()+"---"+student.getAge()+"---"+student.getGender());
        }
    }
}

运行结果:
在这里插入图片描述

Collection的迭代器(Iterator)

 Iterator接口: boolean hasNext():判断迭代器中是否存在下一个元素
                 Object next():  获取下一个可以遍历的元素
public class CollectionTest {
    public static void main(String[] args) {
 
        //创建集合对象
        Collection c = new ArrayList() ; //List接口的子实现类 (重复元素)
 		
 		//获取Collection的迭代器Iterator iterator()
        Iterator it = c.iterator();
        
        //添加元素
        c.add("hello") ;
        c.add("world") ;
        c.add("javaee") ;
        while(it.hasNext()){
            Object obj = it.next();
            
            //获取的元素同时,还要获取当前存储元素的长度  ---->String类型   length()
            String str = (String) obj;//向下转型
            System.out.println(str+"----"+str.length());
        }
 
    }
}

jdk5以后新特性:泛型<E/T>

泛型的格式:<引用数据类型>

集合类型<引用数据类型>  集合对象名 = new  子实现类<引用数据类型>() ;

泛型的好处:

将运行时期异常提前了编译时期
避免了强制类型转换
提高了程序安全性
public class GenericDemo {
    public static void main(String[] args) {
 
        //创建Collection集合对象
        Collection<String> c = new ArrayList<String>() ; 
 
 
        c.add("hello") ;
        c.add("高圆圆") ;
        c.add("你好吗") ;
       
        //获取迭代器Iteratr<E>是集合中存储的泛型是一致的
        Iterator<String> it = c.iterator();
        while(it.hasNext()){
            //获取String字符串的同时,还要获取长度
           //避免了强制类型转换
            String str = it.next();
            System.out.println(str+"---"+str.length());
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值