集合学习1——集合框架与Collection接口

1 集合框架

集合分为两组:单列集合与双列集合
Collection有两个重要的子接口List【有序型】,Set 【无序型】,它们的实现类就是单列集合
Map接口的实现类如常见的Hashtable,HashMap这个K-V键值对型就是双列集合
梳理出来的集合框架如下图所示,接口与实现类均在java.util包下:
在这里插入图片描述
在这里插入图片描述

2 Collection接口

2.1Collection接口常用方法

Collection接口的常用方法如下图所示:
在这里插入图片描述
根据单列框架图所知Collection接口没有直接的实现类,只能通过子接口List,Set实现。为了演示Collection接口的常用方法,将用List的常用实现类ArrayList来讲解方法的使用。

public class CollectionFramework {

    public static void main(String[] args) {
        //add 添加元素
        List list=new ArrayList();
        //等价于list.add(new Integer(1)),元素自动装箱
        list.add(1);
        list.add("name");
        list.add(true);

        System.out.println("list集合如下"+list);

        //删除元素 remove()
        //删除指定下标为0 即第一个元素。
        list.remove(0);
        //删除指定的元素
        list.remove("name");

        //判断元素是否存在 contains
        System.out.println("list集合是否存在元素name:"+list.contains("name"));

        //获得元素的个数 size()
        System.out.println("list集合的个数为"+list.size());

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

        //清空元素 clear
        list.clear();
        //判断集合是否为空等价于集合长度为0
        System.out.println("list集合是否为空"+list.isEmpty());
        System.out.println("list集合如下"+list);


        //添加多个元素  addAll()
        List list_1=new ArrayList();
        list_1.add("book1");
        list_1.add("book2");


        list.addAll(list_1);
        System.out.println("list集合如下"+list);

        //查找多个元素是否都存在
        list_1.add("book3");
        System.out.println("多个元素是否都存在"+list.containsAll(list_1));


        //删除多个元素 removeAll(list1),只要删除一个元素也算成功删除
        System.out.println(list.removeAll(list_1));
        System.out.println("list集合如下"+list);

    }
}

显示结果如下:
在这里插入图片描述

2.1Collection集合的迭代

2.1.1使用迭代器

根据单列集合框架图所示,Collection接口继承了父接口Iterable,Iterable的一个重要方法为
Iterator<T> iterator();
即获得集合的迭代器对象,可以用来遍历集合的所有元素,但迭代器本身并不存放对象。
Collection的子接口都实现了该Iterable接口中方法,因此其子接口的所有实现类均能使用迭代器来遍历集合中的所有元素,仍然使用ArrayList类实现元素的遍历

public class IteratorCollection {

    public static void main(String[] args) {

        List list=new ArrayList();

        list.add(1);
        list.add("name");
        list.add(true);
        list.add(2);
        list.add(new Date());


        //获得集合的迭代器
        Iterator iterator = list.iterator();
        //hash next判断是否存在下一个元素
        while (iterator.hasNext()){
            //next() 存在下一个元素时,取出下一个元素。否则不存在时,调用next()抛出异常
            //next() 每调用一次都会移动所指元素的位置
            System.out.println(iterator.next());
        }

        System.out.println("再次遍历元素");

        //再次遍历时,需要重置迭代器所指元素的位置
        iterator = list.iterator();
        while (iterator.hasNext()){
            //next() 存在下一个元素时,取出下一个元素。否则不存在时,调用next()抛出异常
            //next() 每调用一次都会移动所指元素的位置
            System.out.println(iterator.next());
        }

    }
}

显示结果如下:

1
name
true
2
Fri Jun 17 18:51:37 CST 2022
再次遍历元素
1
name
true
2
Fri Jun 17 18:51:37 CST 2022

2.1.2增强for

增强for是简化版的迭代器,两者原理一致,用于遍历集合或数组

  public static void main(String[] args) {

        List list=new ArrayList();

        list.add(1);
        list.add("name");
        list.add(true);
        list.add(2);
        list.add(new Date());


       for (Object o : list) {
            System.out.println(o);
        }
}
2.1.3 普通for循环
   public static void main(String[] args) {

        List list=new ArrayList();

        list.add(1);
        list.add("name");
        list.add(true);
        list.add(2);
        list.add(new Date());

        for(int i=0;i<list.size();i++){
            System.out.println(list.get(i));
                    
        }
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值