(五-1)集合体系、Collection集合

先理解一下数组与集合的关系:

集合和数组类似,都是容器

1、数组和集合的元素存储的个数问题。

数组定义后类型确定,长度固定

集合类型可以不固定,大小是可变的。

2、数组和集合存储元素的类型问题。

数组可以存储基本类型和引用类型的数据。

集合只能存储引用数据类型的数据。

3、数组和集合适合的场景

数组适合做数据个数和类型确定的场景。

集合适合做数据个数不确定,且要做增删元素的场景,集合种类更多,功能更强大。

一、集合体系

  • Collection单列集合,每个元素(数据)只包含一个值。
  • Map双列集合,每个元素包含两个值(键值对)。

在这里插入图片描述

在这里插入图片描述

集合都是泛型的形式,可以在编译阶段约束集合只能操作某种数据类型

集合和泛型都只能支持引用数据类型,不支持基本数据类型,所以集合中存储的元素都认为是对象

二、Collection集合常用API

Collection是单列集合的祖宗接口,它的功能是全部单列集合都可以继承使用的。

方法名称说明
public boolean add(E e)把给定的对象添加到当前集合中
public void clear()清空集合中所有的元素
public boolean remove(E e)把给定的对象在当前集合中删除
public boolean contains(Object obj)判断当前集合中是否包含给定的对象
public boolean isEmpty()判断当前集合是否为空
public int size()返回集合中元素的个数。
public Object[] toArray()把集合中的元素,存储到数组中
c1.addAll(c2)把c2集合的元素全部倒入到c1中去。

三、Collection集合迭代器遍历方式

1.1 迭代器方式

  • 遍历就是一个一个的把容器中的元素访问一遍。
  • 迭代器在Java中的代表是Iterator,迭代器是集合的专用的遍历方式
ArrayList<String> lists = new ArrayList<>();
        lists.add("赵敏");
        lists.add("小昭");
// 1、得到当前集合的迭代器对象。
Iterator<String> it = lists.iterator();
// 2、定义while循环
while (it.hasNext()){ //hasNext()询问当前位置是否有元素存在,存在返回true ,不存在返回false
      String ele = it.next();//获取当前位置的元素,并同时将迭代器对象移向下一个位置
      System.out.println(ele);
}

迭代器如果取元素越界,会出现NoSuchElementException异常

1.2 foreach/增强for循环

增强for循环:既可以遍历集合也可以遍历数组。

for (String ele : lists) {
            System.out.println(ele);
        }

1.3 lambda表达式

lists.forEach(new Consumer<String>() {
            @Override
            public void accept(String s) {
                System.out.println(s);
            }
        });
//等价于
lists.forEach( s-> {
                System.out.println(s);
        });

1.3 Collection集合存储自定义类型的对象

    // 1、定义一个电影类
        // 2、定义一个集合对象存储3部电影对象
        Collection<Movie> movies = new ArrayList<>();
        movies.add(new Movie("《你好,李焕英》", 9.5, "张小斐,贾玲,沈腾,陈赫"));
        movies.add(new Movie("《唐人街探案》", 8.5, "王宝强,刘昊然,美女"));
        movies.add(new Movie("《刺杀小说家》",8.6, "雷佳音,杨幂"));
    System.out.println(movies);

    // 3、遍历集合容器中的每个电影对象
    for (Movie movie : movies) {
        System.out.println("片名:" + movie.getName());
        System.out.println("得分:" + movie.getScore());
        System.out.println("主演:" + movie.getActor());
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值