Java进阶:【集合】认识集合了解简单语法 迭代器原理分析

集合前言

数组,集合都是对多个数据进行存储操作,简称为容器

PS:这里的存储是内存层面的存储,而不是持久化存储

数组:只能存放同一种类型的数据

,长度无法更改,只能放同一种类型的数据

一旦指定了长度,那么长度就被确定,不可以更改,删除增加效率低,无法直接判断数组的实际元素的数量,需要我们自己去写,存储为有序,可重复。

如何解决数组的缺点?

用于解决数组缺点的新的存数的数据结构—>集合

什么是集合

我们有很多集合,为什么要学习这么多集合,应为不容的集合底层的数据机构不一样

将集合分为两种类型

存储方式:

一个一个数据的存储

一对一对数据的存数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DGwfrEo8-1637914672531)(javaSE.assets/image-20210702102548410.png)]

colletion接口

特点:不唯一,有序

  • 新增:add(E e)
  • 修改:
  • 删除:remove(Object o),clear()
  • 查看:iterator(),size()
  • 判断:contains(Object o),equals(Object o),isEmpty()
/*
* 新增:add(E e)
* 修改:
* 删除:remove(Object o),clear()
* 查看:iterator(),size()
* 判断:contains(Object o),equals(Object o),isEmpty()
* */


    public static void main(String[] args) {
        //接口不能创建对象:利用实现类创建
        Collection col = new ArrayList();
//        集合有一个特点,只能存放引用数据类型,不能是基本数据类型,
//        基本数据类型自动装箱,对应包装类
        col.add(18);
        col.add(12);
        col.add(15);
        System.out.println(col);
        List list = Arrays.asList(new Integer[]{2,1,3,4,5});
        col.addAll(list);
        System.out.println(col);
        col.clear();
        System.out.println(col);
        System.out.println("集合的数量:"+col.size());
        System.out.println("集合是否为空:"+col.isEmpty());
        boolean remove = col.remove(15);
        System.out.println(col);
        System.out.println("是否删除成功:"+remove);

        Collection col2 = new ArrayList();
//        集合有一个特点,只能存放引用数据类型,不能是基本数据类型,
//        基本数据类型自动装箱,对应包装类
        col2.add(18);
        col2.add(12);
        col2.add(15);

        Collection col3 = new ArrayList();
//        集合有一个特点,只能存放引用数据类型,不能是基本数据类型,
//        基本数据类型自动装箱,对应包装类
        col3.add(18);
        col3.add(12);
        col3.add(15);
        System.out.println(col2.equals(col3));

集合有一个特点,只能存放引用数据类型,不能是基本数据类型,那我们为什么加入基本类型没有报错?
解:基本数据类型自动装箱,对应包装类

遍历的两种方式

  1. ​ 增强for循环

            for (Object o : col) {
                System.out.println(o);
            }
    
  2. ​ 迭代器

            Iterator it = col.iterator();
            while (it.hasNext()){
                System.out.println(it.next());
            }
    

    迭代器简略原理:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ws5jDXJb-1637914672534)(javaSE.assets/image-20210702121849168.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7N7QOK8k-1637914672535)(javaSE.assets/image-20210702121819812.png)]

list接口

list接口常用方法:

list接口的常用方法

  • 增加:add(E e),
  • 删除:clear(),remove(int index), remove(Object o)
  • 修改:set(int index, E element)
  • 查看:get(int index),size()
  • 判断:
        List list = new ArrayList();
        list.add(12);
        list.add(5);
        list.add(-1);
        list.add(19);
        list.add(2);
        list.add("abc");
        System.out.println(list);
        list.add(3,14);
        System.out.println(list);
        list.set(3,77);
        System.out.println(list);
        list.remove(2); //调用这个方法参数为integer的时候,调用的是参数为index的remove方法,按照喜爱表删除
        System.out.println(list);
        list.remove("abc");
        System.out.println(list);

        Object o = list.get(0);
        System.out.println(o);
        System.out.println("-----------");
//        遍历list集合,普通for循环
        for (int i = 0; i <list.size(); i++) {
            System.out.print( list.get(i));
        }
        System.out.println("\n-----------");
        for (Object o1 : list) {
            System.out.print(o1);
        }
        System.out.println("\n-----------");
       Iterator it = list.iterator();
       while (it.hasNext()){
           System.out.print(it.next());
       }
    }

以上就是常用方法外加迭代的是那种遍历方式

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冷环渊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值