JAVA基础——【笔记】14.集合
创始人
2024-04-08 21:42:36
0次

集合的框架体系:

image-20221015185954715 image-20221015192847861

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

  • 数组的不足(集合需求的出现):
image-20221015190412631
  • 集合特点:
image-20221015190656394

一、Collection接口方法

image-20221015193442857

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

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

image-20221015194726546

2、Collection接口遍历元素方式

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

① 使用Iterator(迭代器)

image-20221015200415024

迭代器原理:

image-20221015201740909

示例:

image-20221015204112758

② 使用 增强for循环

image-20221015204811556

示例:

image-20221015205056655

③普通for循环

image-20221017210951323

二、List接口和常用方法

1、List接口介绍:

image-20221017192834270

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

2、List接口常用方法:

image-20221017201633940

3、ArrayList注意事项

image-20221018195500104

4、ArrayList扩容机制

image-20221018200632737

5、Vector注意事项

  • 基本介绍
image-20221018212428734

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

  • ArrayList比较Vector
image-20221018212943964

6、LinkedList

  • 说明
image-20221019155502030
  • LinkedList的底层操作机制

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

image-20221019160609716
  • LinkedList的增删改查案例
image-20221019171009428
  • ArrayList和LinkedList的比较
image-20221019171842481

三、set接口和常用方法

1、基本介绍

image-20221019173731229

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

2、常用方法

image-20221019173832308

实例:

image-20221019174410449

3、HashSet

①说明

image-20221019202046091 image-20221019203720402 image-20221107185341787

②HashSet扩容机制

image-20221107195923405

底层机制简要说明:

image-20221107214609642

4、LinkedHashSet

Set接口实现类—LinkedHashSet

说明:(有序,插入取出顺序一样,但插入表时不规律存储)、不重复)

image-20221108212410042

底层源码解读:

image-20221108213548231

三、Map接口

1、Map接口特点

  • Map接口常用方法
image-20221109213038753
  • key相同,value不同时,新value替代旧value

  • Map语法

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

2、Map接口常用方法

  • 常用方法
image-20221110201639112
  • Map接口六大遍历方式
image-20221110203040291

解析:

1、(少使用)

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

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

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

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

小结:

image-20221113204027539

3、HashTable的基本介绍

  • 基本介绍
image-20221114165125911
  • 扩容机制:
image-20221114171358753

HashMap和HaspTable对比

image-20221114171602576**

4、Map接口实现类Properties

  • 基本介绍
image-20221114171720361
  • 常用基本方法:

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

image-20221114173113664

四、集合选型

image-20221114173415977
  • 其中 :

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

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

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

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

五、Collections工具类

  • 介绍
image-20221114212800340
  • 例:
image-20221114212515921 image-20221114214247434

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...