栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

《Java集合专题》[精品贴](持续更新)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

《Java集合专题》[精品贴](持续更新)

为什么需要用集合

  1. 和数组对比:1长度指定,不可变。2 保存同一类型数据。3 增删麻烦(扩容)
  2. 集合的好处:1 动态保存 2 提供多种操作对象方法(不需自己写底层代码,高效面对业务逻辑) 3 代码简洁
集合的框架
  • Collection和Map的实现子类

集合有两组:1 单列集合:放的是单个对象 2 双列集合:存放键值对

Collection接口和方法

实现类特点:1 存放多个元素 2 有些实现类可有重复元素
3 有些实现类是有序的(list)有些无序(set)4通过子接口实现,自己无直接实现

方法 使用(子类实现)

增删
1 add(object)2 remove(int index)返回值 (object)指定删除
3 contains(object) 4 size()5 isEmpty()6 clear()
7 addAll(collection o)只要是collection实现的子类对象都可加入
8 containsAll(obj)9 removeAll(obj)

遍历元素方式

1迭代器:collection有iterator 方法,子类去实现,有next(下移并返回)和hasnext两个方法。使用前要先得到对应的迭代器 快捷键 itit 或ctrl+j
注意:如果需要再次遍历,需要重置迭代器
2 for 增强循环 用于集合和数组 底层仍然是迭代器!!!(就是简化版的迭代器)快捷键 I

List接口方法(collection 的细化子接口)
特点:1 有序且可以重复 (添加与取出顺序一致) 
          2 元素有索引
方法

1 add 可插入具体位置,默认放在最后面
2 addAll 可插入具体位置,默认放在最后面
3 indexOf()返回首次出现 lastIndexOf
4 remove(index) 5 set(index,obj)
6 subList(fromin ,toindex)是左闭右开的 [ )
7 get

list接口的三种遍:

1iterator 2 增强for循环(最简洁的) 3普通for循环

//list的3种实现

ArrayList底层结构和源码分析(重点)

注意事项:1 可以加入一个或多个null值 2 由数组实现 3 线程不安全(但是执行效率高,多线程下不建议使用,可用vector)

结论无参构造的源码

第一步
第二步
size++ 先赋值后++
第三步

第四步

modcount++是记录线程的
第五步

copyof()保存原来数组元素,扩容内容为null值

有参数构造器

除了第一步其他跟上面一样

vector底层结构和源码分析

特点:1 也是对象数组存储 2 线程同步的,线程安全 操作方法有synchronized





linkedList底层结构


添加节点

删除节点


(这两个都是线程不安全的,在单线程下使用)

Set接口

特点:1 无序 (添加和取出不一致) 没有索引 2 不允许重复元素,最多一个null值 遍历方法没有普通for循环(没有索引)没有get方法

//多态
补充内容
接口 :规定相关方法(可以有默认方法default 和静态方法static),类要根据具体情况去全部实现这个接口里面的抽象方法
特点:1 一个类可以同时实现多个接口 2 接口中的属性是final的而且是public static final 修饰 3 接口不能继承类 接口可以继承多个接口 4 接口的修饰 为public default

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/445000.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号