IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 浅析集合框架 -> 正文阅读

[数据结构与算法]浅析集合框架

前言:Java 集合框架Java Collection Framework,又被称为容器container ,是定义在 java.util 包下的一组接口interfaces和其实现类classes。

其主要是将多个元素置于一个单元中,用于对这些元素进行快速、便捷存储store、检索retrieve、管理manipulate,即平时我们俗称的增删查改CRUD

我们这里主要讲集合框架中List、Queue、Map、Set的主要用法

前提须知:这些集合类都只能存储类的对象,所以对于基本数据类型,我们要用集合类时要使用基本数据类型的包装类

目录

1.框架总览

?2.Collection接口:

3.Map接口

4. List接口?

5.Set接口


1.框架总览

首先是Iterable接口及其子接口和子类

值得注意的是:上图三种颜色分别表示了接口、抽象类、和普通子类,读图时注意辨识

  • 实现Iterable接口的都可直接使用for-each循环遍历
  • Collection接口可理解为线性结构的意思
  • List接口为线性表,其下有三个子类:ArrayList为动态数组,LinkedList为双向链表,Stack为栈结构
  • Queue接口为队列,其中Deque为双端队列,PriorityQueue为基于最小堆(最小堆就是完全二叉树)的优先级队列,这里可以看到,LinkedList也实现了Deque接口,所以LinkedList也是双端队列
  • Set接口: 最大的特点是元素不能重复,所以Set接口类存储天然去重,可对第一次出现的元素特殊处理,故而背后隐含着查找/搜索的语义

还应该了解的是Map接口

?

Collection 接口下的每个单元都只存储一个元素,而Map存储的是一种映射关系,一次存储两个元素,一个key值,一个value值,key值不可以重复,一个key值只能对应一个value

?2.Collection接口:

常用方法:

3.Map接口

常用方法:

V remove(K key)? ?根据key值删除,并返回key对应的value

遍历Map:

获取所有的key集合,最后返回Set

获取所有value集合,最后返回Collection

获取键值对,Map->Set->遍历

如获取键值对:

import java.util.*;

public class Test {
    public static void main(String[] args) {
        Map<Integer,Integer> map = new HashMap<>();
        map.put(1,6);
        map.put(4,7);
        Set<Map.Entry<Integer,Integer>> entry = map.entrySet();
//        for-each遍历
        for(Map.Entry<Integer,Integer> temp : entry){
            System.out.println(temp.getKey() + "-" + temp.getValue());
        }

    }
}

?结果:

注意:Entry就是一个个元素单位,存放键值对

class Entry{

k key;

v value;

}?

4. List接口?

List即为线性表结构

常用方法:

通用用法一般如下:

List <Integer > list = new ArrayList<>();?//创建了一个整型动态数组

import java.util.ArrayList;
import java.util.List;

public class Test {
    public static void main(String[] args) {
//        创建对象
        List<Integer> list = new ArrayList<>();
//        调用add方法
        list.add(3);
        list.add(4);
        list.add(5);
        System.out.println(list);
    }
}

?结果:

[3, 4, 5]

5.Set接口

常用方法:

?注意:Set接口无修改元素的方法,故想要修改只能通过先删除再添加的方法

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-01-25 10:49:54  更:2022-01-25 10:50:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 19:32:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码