Map&Collection&Collections工具类、Collection接口

本文详细介绍了Java集合框架中的Collection接口及其子接口List和Set,包括它们的常用方法、遍历方式以及底层实现原理。ArrayList和LinkedList的区别,以及HashSet和TreeSet的特性也进行了讲解。此外,还涵盖了泛型的基本概念和Map接口的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Collection

1、Collection常用方法

1、add(E,e)

  • 添加元素到集合末尾

2、remove(Object o)

  • 删除集合中的元素

3、removelf(Lambda表达式)

  • 删除集合中满足条件的元素

4、contains(Object o)

  • 判断集合中是否包含元素

5、isEmpty()

  • 判断集合是否为空

6、size()

  • 获取集合中的元素个数

7、toArray()

  • 把集合转换为数组

2、Collection通用遍历方式

1、迭代器遍历

2、增强for遍历

3、forEach遍历

3、list集合

1、list集合特有方法

  • 特点:有索引,有序,元素可以重复

    • 2、add(int index,E e)

      • 在指定索引位置添加元素

    • 3、remove(int index)

      • 在指定位置删除元素

    • 4、set(int index,E e)

      • 在指定索引为修改元素

    • 5、get(int index)

      • 在指定索引位置获取元素

2、list集合遍历方式

  • 1、普通for

  • 2、迭代器

  • 3、增强for遍历

  • 4、forEach遍历

3、ArraysList底层原理:

  • 数据结构

    • 数组结构

  • 特点:

    • 查询快,增删慢

4、LinkedList底层原理

  • 数据结构

    • 链表结构

  • 特点:

    • 查询慢,增删快

  • 底层是双向链表结构,集合中特有的属性有头节点和尾节点,所以收尾很快

  • LinkedList集合应用场景

    • 1、实现栈结构

      • 先进后出,后进先出

    • 2、实现队列结构

      • 先进先出,后进后出

5、Set集合

  • 1、HashSet集合底层原理

    • 数据结构

      • 哈希表结构

        • JDK8之前:数组+链表

        • JDK8之后:数组+链表+红黑树,旧数据指向新数据

    • 特点:

      • 保证元素唯一性

        • hashCode()和equals()

  • 2、TreeSet集合底层原理

    • 数据结构

      • 红黑树结构

        • 增删改查的性能都比较好

    • 特点

      • 对元素排序

      • 可排序,不重复、无索引

Map、Collections工具类

1、泛型

1、认识泛型

  • 概述:泛型是一种类型变量,可以在类上、方法上、接口上

  • 格式:<T,K,V....>

    • T是一种数据类型,但是具体是什么类型,不知道

2、泛型类

  • 格式:

    • class 类名<T>

  • 创建对象时,确定类上泛型的具体类型

3、泛型接口

  • 格式:

    • interface 接口名<T>

  • 实现接口时,确定接口上泛型的具体类型

4、泛型方法

  • 格式

    • 修饰符<T> 方法名(T t)

  • 调用方法时,确定方法上泛型的具体类型

2、Map集合

1、Map集合概述:

  • Map接口

    • HashMap类

      • 键无序,无索引,不能重复

    • LinkedHashMap类

      • 键有序,无索引,不能重复

    • TreeMap类

      • 键可以排序,无索引,不能重复

2、Map集合常用方法

  • put:添加键值

  • get:根据键值获值

  • remove:根据键删除键值对

  • containsKey:判断是否包含键

  • values:获取所有的值,返回一个集合

  • isEmpty:判断集合是否为空

  • KeySet:获取所有键,存储到Set集合中并返回

  • entyySet:获取所有键值对对象,储存到一个Set集合中并返回

3、Map集合遍历

  • 1、找键值

  • 2、直接找键值对

  • 3、forEach方法

3、可变参数

作用:

  • 让方法可以接收到0到多个参数,使用方法调用更加灵活

格式:

  • 方法名(数据类型...参数名)

本质:

  • 可变参数本质上是一个数组,只是格式和数组不太一样,用法和数组一模一样

4、Collections工具类

Collections工具类

  • addAll:

    • 往Collection集合中批量添加元素

  • shuffle:

    • 打乱List集合中的元素

  • sort:

    • 对List集合进行排序

Collection接口

规定了所有单列集合的共性方法: add(E e):添加元素到集合末尾 remove(Object e):删除集合的元素 clear():清空集合所有的元素 isEmpty():判断集合是否为空 contains(Object o):判断集合是否包含某个元素 toArray():把集合转换为数 size():获取集合的元素个数

List接口

特点:有序,有索引,可以重复

遍历方式:1、普通for

             2、增强for
             3、迭代器
             4、forEach方法

相当于Collection来说新增了针对索引操作的方法:

  • add(int index,E e):往指定索引位置添加元素

  • remove(int index):删除指定索引位置的元素

  • set(int index,E e):用新的元素替换指定索引位置的元素

  • get(int index):获取指定索引位置的元素

ArrayList类

  • 数组结构

    • 按照数组结构重写了List和Collection的所有抽象方法

LinkedList类

  • 链表结构

    • 按照链表结构对List和Collection中的所有方法进行重写

    • 新增:针对头,尾操作的方法

Set接口

特点:无序,无索引,不重复

遍历方式:

  • 1、增强for

  • 2、迭代器

  • 3、forEach方法

HashSet类

  • 哈希表结构:数组+链表

    • 按照哈希表结构对Collection的方法进行重写

  • 无序

  • 保证元素唯一的方式:

    • 重写hashCode方法

    • 重写equals方法

  • LinkedHashSet类:

    • 有序

    • 双向链表+哈希表(数组+链表)

    • 保证元素唯一的方式:

      • 重写hashCode方法

      • 重写equals方法

TreeSet类

  • 红黑树结构

  • 按照红黑树的原理去重写Collection的所有的抽象方法

  • 对元素有两种排序方法:

    • 1、让元素实现Comparable接口,重写compareTo方法

    • 2、chuangjianTreeSet集合传递Comparator比较器,重写compare方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值