JAVA基础——【笔记】14.集合

集合的框架体系:

在这里插入图片描述
在这里插入图片描述

List等接口的实现子类有很多,仅列出常用的。

  • 数组的不足(集合需求的出现):

在这里插入图片描述

  • 集合特点:

在这里插入图片描述

一、Collection接口方法

在这里插入图片描述

1、Collection常用方法及其用法:

(Collection为接口,不能直接实例化,需要类实现接口)

在这里插入图片描述

2、Collection接口遍历元素方式

如果是Collection接口,可以用迭代器和增强for循环两种方式遍历,如果是List接口的子类还能用普通for

① 使用Iterator(迭代器)
在这里插入图片描述

迭代器原理:
在这里插入图片描述

示例:

在这里插入图片描述

② 使用 增强for循环

在这里插入图片描述

示例:

在这里插入图片描述

③普通for循环

在这里插入图片描述

二、List接口和常用方法

1、List接口介绍:

在这里插入图片描述

List集合的元素有序、可重复、有索引(0开始)

2、List接口常用方法:

在这里插入图片描述

3、ArrayList注意事项

在这里插入图片描述

4、ArrayList扩容机制

在这里插入图片描述

5、Vector注意事项
  • 基本介绍

在这里插入图片描述

多线程时更适合用Vector,其是线程安全的

  • ArrayList比较Vector
    在这里插入图片描述
6、LinkedList
  • 说明

  • LinkedList的底层操作机制

添加删除操作效率更高,不是通过数组扩容

在这里插入图片描述

  • LinkedList的增删改查案例

在这里插入图片描述

  • ArrayList和LinkedList的比较
    在这里插入图片描述

三、set接口和常用方法

1、基本介绍

在这里插入图片描述

添加和取出的顺序不一样,但取出的顺序是固定的,即每次运行都是固定顺序

2、常用方法

在这里插入图片描述

实例:
在这里插入图片描述

3、HashSet

①说明

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

②HashSet扩容机制
在这里插入图片描述

底层机制简要说明:
在这里插入图片描述

4、LinkedHashSet

Set接口实现类—LinkedHashSet

说明:(有序,插入取出顺序一样,但插入表时不规律存储)、不重复)
在这里插入图片描述

底层源码解读:

在这里插入图片描述

三、Map接口

1、Map接口特点
  • Map接口常用方法
    在这里插入图片描述

  • key相同,value不同时,新value替代旧value

  • Map语法

    1、添加元素 .put
    map.put(key,value);
    2、通过get()方法获取key对应的value
    map.get("not")
    
2、Map接口常用方法
  • 常用方法

在这里插入图片描述

  • Map接口六大遍历方式

在这里插入图片描述

解析:

1、(少使用)

2、通过迭代器获取所有键(key),再通过map.get(key)遍历键来获取值 ⭐️

3、通过迭代/循环 EntrySet来获取K-V

4、直接获取所有值(value),再遍历

每种Map遍历方式中又包含可用增强for和迭代器两种遍历的方法.

小结:

在这里插入图片描述

3、HashTable的基本介绍
  • 基本介绍
    在这里插入图片描述

  • 扩容机制:
    在这里插入图片描述

HashMap和HaspTable对比

在这里插入图片描述

4、Map接口实现类Properties
  • 基本介绍
    在这里插入图片描述

  • 常用基本方法:

增\删\改\查(获取值)

在这里插入图片描述

四、集合选型

在这里插入图片描述

  • 其中 :

List中:增删多:双链表增删更快; 改查多:通过数组的索引定位比较快;

插入和取出顺一致,但存储时是无序存储的;

TreeSet具备实现了Comparator接口的compare()方法,重写compare()方法可以自定义排序规则,对Integer类型数据存储顺序默认按数字从小到大排序,字母默认按从a-z排序.

TreeMap类似TreeSet,只是实现了compareable接口的compareTo()方法

五、Collections工具类

  • 介绍
    在这里插入图片描述

  • 例:

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

极客编程_毕设大师兄

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

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

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

打赏作者

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

抵扣说明:

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

余额充值