day18 集合 List集合

1 数组封装

1.1 需求

        数组的操作 不能添加删除 如果添加删除的话需要更新数组 创建新的数组

        复制数组或者元素移位麻烦 时间开销大 空间开销大

        因此对添加删除这类操作封装

2 集合

2.1概述

        java集合是使程序能够存储和操作元素不固定的一组数据所有java集合类都位于

        java.util包中

        

        如果存放基本类型 会自动装箱成对应的包装类

        2.2继承体系

        

Collection 集合 两个直接子接口List Set

List特性 有序可重复

Set特性 无序不重复

LIst子类

        Arraylist 自层是数组 查询和更改效率极高

        Vector 底层是双向链表 添加删除效率高

Set

        HashSet 自层是散列表

        TreeSet 底层是二叉树

2.3Collection

        集合的父类 里面的方法所有集合的子类都会有

2.3.1 常用方法

        

2.3.2 迭代器

        迭代器:主要是做遍历操作 使用迭代器可以屏蔽数据结构之间的差异性
 * hasNext:判断是否由元素 作为遍历的终止条件
 * next 返回下一个元素
 * remove 删除这个元素(注意 使用迭代器时候 如果要删除元素必须使用迭代器的remove方法)
 * 迭代器一旦生成 集合不能修改 否则需要重新生成迭代器iterator()

2.3.3注意

        contains(Object o)判断是否包含某个元素

        remove(Object o) 删除指定元素

        这两个方法底层都会调用equals方法比较

2.4 forEach

        增强for循环 forEach是迭代器的简写方式 但是一样不能
 * 修改集合 否则会报错

        

2.5 LIst

        List 有序可重复
 * 有序: 先后顺序 先到先得队列 添加顺序跟取出顺序一样
 * 可重复 可以添加重复数据
 * ArrayList 底层是Object数组 所以查询跟修改效率极高
 * LinkList 底层是双向链表 随机添加和删除效率极高

2.5.1 ArrayList

        使用

        

        

2.5.2 LinkedList

        使用方法跟ArrayList一样

        虽然底层是双向链表但是某些方法的索引依然可以使用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值