Day13-集合(一)

集合

集合和数组的对比

  • 数组长度固定,集合长度可变

ArrayList

public class arrayListdome01 {
    public static void main(String[] args) {
        //1.创建一个集合对象
        //泛型:限定集合中存储数据的类型
        //ArrayList<String> list = new ArrayList<String>();
        //jdk7:
        ArrayList<String> list = new ArrayList<>();
​
        //此时我们创建的是ArrayList的对象,而ArryaList是java已经写好的一个类
        //这个类在底层做了处理
        //打印对象不是地址值,是集合中储存数据的内容
        //展示时会用[]把内容括起来
        System.out.println(list);
    }
}

集合体系结构

  • Collection 单列集合

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

    • List(添加元素是有序【存取顺序,不是大小关系】,可重复,有索引)

    • ArrayList
      • LinkedList

      • Vector(已被淘汰)

    • Set(添加元素是无序,不重复,无索引)

      • HashSet

        • LinkedHashSet

      • TreeSet

  • Map双列集合

Collection的遍历方式

  • 迭代器遍历

    • 不依赖索引(创建指针和移动指针)

    • 在java中的类是Iterator,是他的专用遍历方式

    • Collection集合获取迭代器

      Iterator<E> iterator();//返回迭代器对象,默认指向当前集合的0索引
      ​
      //Iterator中的常用方法
      boolean hasNext()  //判断当前位置是否有元素,有元素返回true,没有元素返回false
      E next()//获取当前位置的元素,并将迭代器对象移项下一个位置(只能使用一次)
      remove//删除
    • 当上面的循环结束之后,迭代器的指针已经指向没有元素的位置,会报错:NoSuchElementException
  • 增强for遍历(简化迭代器的代码书写)

    • 增强for的底层就是迭代器,为了简化迭代器的代码书写

    • 它是JDK5之后出现的,其内部原理就是一个Iterator迭代器

    • 所有的单列集合数组才能用增强for进行遍历

    • for(元素的数据类型 变量名:数组或者集合){
          
      }
    • 小细节:

      • 修改增强for中的变量,不会改变集合中原本的数据

  • Lamba表达式遍历

    default void forEach(Consumer<? super T> action)://结合lambda遍历集合
    ​
    ​
    关于省略:
        1.数据类型可以省
        2.如果参数只有一个,小括号可以省略
        3.方法体只有一行,大括号、分号、return、可以省略
        4.new Consumer<String>(){public void accept}可以删掉
  • 小结:

    1. Collection是单列集合的底层接口,所有方法被list和set系列集合共享

    2. 常见成员方法:

      • add、clear、remove、contains、isEmpt、size

    3. 迭代器:在遍历过程中需要删除元素,请使用迭代器

    4. 增强for、Lambda:仅仅想遍历,那么使用for或Lambda表达式

List集合

  • 有序,可重复,有索引

  • 继承Collection

  • 遍历方式

    • 迭代器遍历

    • 列表迭代器遍历

    • 增强for遍历

    • Lambda表达式遍历

    • 普通for循环遍历

五种遍历方式对比

  • 迭代器遍历

    在遍历过程中需要删除元素

  • 列表迭代器遍历(list独有)

    在遍历过程中需要添加元素

  • 增强for遍历、Lambda表达式遍历

    仅仅想遍历

  • 普通for循环遍历

    如果便利的时候想操作索引

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值