70 个常用的GIS Python 库

由于其多功能性、广泛的库生态系统和用户友好的语法,Python 已成为地理信息系统 (GIS) 和遥感领域的主导语言。这个 70 个地理空间 Python 库的汇编展示了可用于 GIS 和遥感数据处理和分析的丰富工具包。

Python 在 GIS 中的重要性源于它处理复杂地理空间数据的能力,从矢量和栅格格式到点云。借助 Python,GIS 专业人员可以高效地执行数据操作、空间分析、可视化和自动化等任务。

多年来,Python 已经发展到可以通过专门的库和工具无缝地处理 GIS 数据。Python 与 GDAL、Fiona 和 Shapely 等强大的地理空间库的集成为读取、写入和处理各种格式的空间数据提供了基础。而且,GeoPandas的出现,将pandas的能力带入了地理空间数据,实现了属性和空间操作的无缝集成。

Python 的开源特性和广泛的社区支持促进了众多地理空间库的开发。这些库(例如 Cartopy、Basemap 和 Pyproj)为地图投影、坐标变换、空间分析和交互式可视化等任务提供了专门的功能。它们提供直观的界面和高效的算法,使 GIS 专业人员能够有效地解决复杂的地理空间问题。

Python 在 GIS 领域的前景一片光明。随着机器学习和人工智能的进步,ArcGIS API for Python、PyTorch、TensorFlow 和 scikit-learn 等 Python 库正在应用于地理空间数据分析,从而实现土地覆盖分类和对象检测等任务。此外,将 Python 与遥感、SAR 和高光谱数据处理等新兴技术集成正在扩展遥感应用程序的功能。

Python 的灵活性、易用性以及大量的地理空间库使其成为 GIS 专业人员、空间数据科学家、研究人员和开发人员的首选。随着地理空间领域的不断发展,Python 的适应性和广泛的库生态系统将在推动创新、实现先进分析技术以及促进地理空间数据与其他领域的集成方面发挥关键作用。

70 个地理空间 Python 库的汇编展示了 Python 在 GIS 中的重要性。Python 的发展能够与 GIS 数据无缝协作,再加上其广泛的库生态系统,使其成为地理空间数据处理和分析的强大工具。凭借其在新兴技术中的光明前景,Python 继续塑造 GIS 和遥感的未来,实现先进的地理空间应用和见解。

  1. ArcGIS API for Python (Esri) :由Esri开发,该库为 ArcGIS 用户提供 GeoAI 功能。

  2. Earth Engine API (Google) : Earth Engine API 允许您访问 Google Earth Engine 的大量地理空间数据并使用 Python 执行分析任务。

  3. TorchGeo ( PyTorch ):TorchGeo 提供了在 PyTorch 中处理地理空间数据的工具和实用程序,包括数据加载器、转换和空间索引。

  4. fastai.vision (fast.ai):虽然不是专门为 GeoAI 设计的,但 fastai.vision 是一个用于深度学习和计算机视觉任务的流行库,可用于分析地理空间图像。

  5. arcpy (Esri):arcpy 是 Esri 提供的 Python 库,用于在 ArcGIS 平台上处理地理空间数据。它允许您自动执行地理处理任务并执行空间分析。

  6. PyQt(河岸计算):PyQt 是 Qt 应用程序框架的一组 Python 绑定。它可用于为地理空间应用程序创建图形用户界面(GUI)。

  7. GeoPandas:GeoPandas 扩展了流行的数据分析库 Pandas 的功能来处理地理空间数据。它提供了用于处理矢量数据(例如点、线和多边形)的高级接口。

  8. Rasterio:Rasterio 是一个用于读取和写入地理空间栅格数据集的库。它提供了对栅格数据的高效访问,并允许进行各种操作,例如重新投影和重新采样。

  9. GDAL(开源地理空间基金会):GDAL(地理空间数据抽象库)是一个功能强大的库,用于读取、写入和操作地理空间栅格和矢量数据格式。

  10. Fiona: Fiona 是一个 Python API,用于读取和写入不同格式的地理空间数据,包括 Shapefile 和 GeoJSON。它与 GeoPandas 等其他库集成良好。

  11. Shapely: Shapely 是 Python 中用于几何运算的库。它允许您创建、操作和分析点、线和多边形等几何对象。

  12. GeoPy: GeoPy 是一个用于地理编码和反向地理编码的库,它允许您将地址转换为地理坐标,反之亦然。用于地理编码和距离计算的库。Geopy 还提供了根据不同距离度量计算点之间距离的功能。

  13. PySAL: PySAL(Python空间分析库)提供了广泛的空间分析方法,包括空间自相关、聚类和空间回归。

  14. Pyproj:Pyproj 是 PROJ 库的 Python 接口,它提供坐标转换功能。它允许您在不同的坐标参考系 (CRS) 之间转换坐标。

  15. Rasterstats: Rasterstats 提供了对栅格数据集进行分区统计分析的工具。它允许您计算定义区域内的统计数据,例如平均值或最大值。

  16. Geos: Geos 是一个提供低级几何操作的 C++ 库,Python Geos 库提供了 Geos 的 Python 接口。它经常与 Shapely 结合使用。

  17. RSGISLib:RSGISLib 是一个用于遥感和 GIS 分析的库。它提供了一系列功能,包括图像分类、变化检测和光谱指数计算。它还包括处理热遥感数据的功能。它提供热图像处理功能,包括辐射校正、地表温度估算和发射率检索。

  18. WhiteboxTools:WhiteboxTools 是一个用于地理空间分析和数据处理的库。它为地形分析、水文建模和激光雷达数据处理等任务提供了一套全面的工具。

  19. GeoDjango:GeoDjango 是一个 Python 框架,用于开发具有地理空间功能的 Web 应用程序。它与流行的 Web 框架 Django 集成,并提供用于管理地理空间数据和执行空间查询的工具。

  20. Xarray:专为处理多维地理空间数据集而设计,它提供了数据操作、分析和可视化工具。

  21. GeoAlchemy:将地理空间数据集成到 SQLAlchemy(一个 Python SQL 工具包)中,允许使用地理数据库进行空间查询和操作。

  22. scikit-mobility:scikit-mobility 是一个用于分析和建模移动模式和轨迹的库。

  23. EarthPy(EarthPy 贡献者):EarthPy 是一个专注于地球科学数据分析的库,特别是遥感和地理空间图像。

  24. GeoViews (HoloViz):GeoViews 是一个使用 HoloViews 生态系统创建地理空间数据交互式可视化的库。

  25. Geocoder:Geocoder 是一个简单易用的库,用于地理编码和反向地理编码任务。

  26. GeoPandas-Bokeh:GeoPandas-Bokeh 是 GeoPandas 的扩展,可使用 Bokeh 实现交互式地理空间可视化。

  27. Cartopy:Cartopy 是一个用于地理空间数据处理和可视化的 Python 库。它提供了一个简单直观的界面,用于创建地图和使用地理空间数据集。

  28. Folium:Folium 是一个用于交互式地图可视化的库,允许用户使用 Python 和 Leaflet.js 创建和操作交互式地图。

  29. geoplot:geoplot 是一个地理空间数据可视化库,提供用于创建各种类型地图的高级界面,包括分区统计图、点图和线图。它是 cartopy 和 matplotlib 的扩展,使绘图变得简单:就像地理空间的 seaborn 一样。

  30. PyCRS:PyCRS 是一个用于在 Python 中使用坐标参考系统 (CRS) 的库。它提供了用于在不同 CRS 格式之间进行转换和执行 CRS 转换的实用程序。

  31. RasterVision:专为遥感中的深度学习应用而设计,它提供了用于预处理和分析卫星图像的工具。

  32. osmnx:OSMnx 是一个用于检索、分析和可视化 OpenStreetMap (OSM) 数据的 Python 库。它允许用户下载街道网络、建筑物和其他 OSM 功能并对其进行网络分析。

  33. Overpy:Overpy 是 Overpass API 的 Python 包装器,它是查询和下载 OpenStreetMap (OSM) 数据的强大工具。它允许用户根据自定义标准提取特定的 OSM 功能,并可用于各种地理空间分析。

  34. NetworkX:NetworkX 是一个用于创建、操作和研究复杂网络的 Python 库。它可用于建模和分析空间网络,例如交通网络、社交网络或基础设施网络。NetworkX 提供用于网络分析、社区检测和中心性度量的算法,可应用于地理空间网络以实现各种目的。

  35. geospatial-learn:geospatial-learn 是一个 Python 模块,用于将 scikit-learn 和 xgb 模型与地理空间数据(主要是栅格和矢量格式)结合使用。

  36. OGR:OGR 是一个提供读写地理空间矢量数据格式支持的库。它是 GDAL 项目的一部分,允许用户使用各种矢量数据格式,例如 Shapefile、GeoJSON 和 KML。

  37. ipyleaflet:ipyleaflet 是一个 Python 库,用于在 Jupyter Notebooks 和 JupyterLab 中进行交互式映射可视化。ipyleaflet 对于创建交互式地理空间可视化和网络地图应用程序非常有用。

  38. Pydeck:Pydeck 是一个高级库,用于在 2D 和 3D 地图上创建交互式数据可视化。它构建在 Deck.gl 之上,提供简单直观的 API,用于创建令人惊叹的可视化效果,并且可以轻松集成到 Jupyter Notebooks 或 Web 应用程序中。

  39. GeoMesa:GeoMesa 是一个地理空间数据管理和分析库,构建在 Apache Hadoop、Apache Accumulo、Apache HBase 和 Apache Kafka 等分布式计算框架之上。它允许高效存储、索引和查询大规模地理空间数据。GeoMesa 旨在处理时空数据,并支持 GeoAI 应用程序的高级分析,包括时空索引和地理空间查询优化。

  40. RasterFrames:RasterFrames 是一个使用 Apache Spark 的 DataFrame API 处理地理空间栅格数据的库。它能够将栅格数据与 Spark 的分布式处理功能集成,使其可针对大规模地理空间分析任务进行扩展。RasterFrames 允许用户利用 Spark 并行处理功能执行分布式栅格处理和分析。

  41. laspy:laspy 是一个 Python 库,用于读取、写入和修改 ASPRS LAS 格式的 LIDAR 数据。LIDAR(光探测和测距)数据通常用于捕获有关地球表面的详细 3D 信息。借助 laspy,您可以轻松处理 LAS 文件、访问点云数据,并从 LIDAR 数据中提取高程、强度和分类信息等特征。该库对于地形建模、林业、城市规划和涉及高分辨率 3D 数据的其他应用特别有用。

  42. PDAL(点数据抽象库):PDAL是一个功能强大的开源库,用于处理和分析点云数据。PDAL 支持多种数据格式,并与其他地理空间工具无缝集成,包括 GDAL 和 LASzip。它通常用于地理空间管道中,在使用 laspy 或 GeoMesa 等库执行更高级的分析之前预处理点云数据。

  43. PyVista:PyVista 是一个用于点云、网格和体积数据的 3D 可视化和分析的 Python 库。它提供了一个高级界面,用于在交互式 3D 绘图中可视化点云数据、生成表面网格以及对点云执行各种几何操作。PyVista 由 Bane Sullivan 和 OpenGeoVis 团队积极维护

  44. Open3D:Open3D 是一个用于 3D 数据处理的开源库。它包括点云可视化、配准、过滤和分割模块。Open3D 支持各种点云格式,并提供用户友好的界面来处理点云数据。

  45. PCL(点云库):PCL是一个用于点云处理的C++库,但它也提供Python绑定。它提供了广泛的点云过滤、特征提取、配准和分割算法。Python 绑定允许用户访问 PCL 功能并执行高级点云分析任务。

  46. PyntCloud:PyntCloud 是一个专门为点云处理设计的 Python 库。它提供了用于读取、操作和分析点云的工具。PyntCloud支持多种点云格式,并提供点云可视化、下采样和表面重建等功能。

  47. geemap:geemap 是一个构建在 Google Earth Engine (GEE) 之上的 Python 库,为交互式地图和地理空间分析提供了一个用户友好的界面。它允许用户使用交互式地图和小部件可视化和分析来自 GEE 的地球观测数据。

  48. reportlab:reportlab 是一个用于以编程方式创建 PDF 文档的 Python 库。在地理空间数据分析的背景下,reportlab 可用于根据地理空间数据分析结果生成自定义报告、地图和可视化。它允许您创建包含表格、图表、图像和地图的动态 PDF 文档,使其可用于生成基于地理空间分析的高质量报告和演示文稿。

  49. h3-py:h3-py 是 H3 库的 Python 绑定,H3 库是基于六边形的地理空间索引系统。它提供了一种快速有效的方法来索引和分析地理空间数据,特别是对于涉及空间聚合和六边形分箱的任务。

  50. Rtree:Rtree 是一个用于执行空间索引的库。它允许高效的空间搜索和查询,使其对于涉及空间数据组织和检索的任务非常有用。

  51. PySAR(归:NASA/JPL-Caltech 所有):PySAR 是由 NASA 喷气推进实验室 (JPL) 和加州理工学院 (Caltech) 开发的 Python 库。它提供了用于处理、分析和可视化 SAR 数据的工具,包括干涉 SAR (InSAR) 和时间序列分析。PySAR 支持各种 SAR 数据格式,并提供变形监测、地形测绘和其他 SAR 分析应用的功能。

  52. SarPy:SarPy 是一个用于读取、分析和处理 SAR 数据(包括复杂雷达数据)的 Python 库。它提供了用于处理各种格式的 SAR 数据并执行 SAR 特定任务(例如图像形成、聚焦和干涉处理)的工具。SarPy 由美国空军研究实验室 (AFRL) 开发和维护。

  53. snappy:snappy 是欧洲航天局 (ESA) 开发的一个 Python 库,用于处理 Sentinel-1 Toolbox (S1TBX) 中的 SAR 数据。它为 Sentinel 应用平台 (SNAP) 软件提供 Python 接口,允许用户使用 Python 脚本访问和处理 Sentinel-1 SAR 数据。snappy 支持 SNAP 环境中的数据读取、预处理和 SAR 分析等任务。

  54. PyRAT(归:NASA/GSFC):PyRAT(Python Radiative Transfer)是由 NASA 戈达德太空飞行中心(GSFC)开发的用于高光谱遥感分析的 Python 库。它提供了大气辐射传输建模、光谱分解和从高光谱数据检索表面参数的工具。PyRAT 专为地球观测应用中的高光谱数据分析而设计。

  55. Spectral(归:Python Spectral 开发团队所有):Spectral 是由 Python Spectral 开发团队维护的 Python 库。它专注于高光谱遥感数据分析,提供读取、处理和可视化高光谱数据的功能。Spectral 提供了多种光谱分析算法,包括分类、端元提取和植被指数计算。它还可用于处理和分析热遥感数据。Spectral 提供加载、预处理和分析热图像的功能。它包括温度检索算法,如果需要,可以结合高光谱数据处理热数据。

  56. PySptools: PySptools 是一个实现光谱和高光谱算法的 Python 模块。该库的专业领域包括端元提取、分解过程、监督分类、目标检测、降噪、凸包去除和频谱级别的特征提取。该库的设计易于使用,几乎所有功能都具有绘图功能,可以节省您的数据分析过程时间。算法的实际来源是 Isaac Gerg 的 Matlab 高光谱工具箱、MA Little 的 pwctools、Endmember Induction Algorithms Toolbox (EIA)、José Bioucas-Dias 和 José Nascimento 的 HySime Matlab 模块以及研究论文。

  57. Hylite:Hylite 是一个用于高光谱图像分析和可视化的 Python 库。它专注于为高光谱数据处理提供高效的算法,包括光谱分析、特征提取和分类。Hylite 还提供交互式可视化功能,用于探索高光谱数据集。

  58. Hyperspy:Hyperspy 是一个用于多维数据分析(包括高光谱数据)的 Python 库。虽然 Hyperspy 并不专门专注于遥感,但它提供了处理和分析高光谱成像中常见的大型复杂数据集的功能。Hyperspy 是一个开源项目,得到了各个开发人员的贡献。

  59. Py6S:Py6S 是 6S(太阳光谱中卫星信号的第二次模拟)辐射传输模型的 Python 接口。它允许用户模拟和校正热遥感数据中的大气效应。通过提供传感器规格、大气条件和表面特性等输入,Py6S 可以估计大气校正并提供校准的热图像。

  60. ENVI Py:ENVI Py 是 ENVI(可视化图像环境)遥感软件的 Python 接口。ENVI 在遥感社区中广泛使用,ENVI Py 允许用户在 Python 中访问 ENVI 功能。它提供了处理和分析热遥感数据的工具,包括辐射校准、大气校正和温度反演。

  61. PotreeConverter:PotreeConverter 是一个命令行工具(可与 Python 一起使用),用于将大型点云数据集转换为 Potree 格式,专为高效的 3D Web 可视化而设计。PotreeConverter 通常用于创建基于 Web 的交互式点云可视化。

  62. pptk:pptk 是一个 Python 库,用于实时可视化大型 3D 点云并与之交互。它对于海量点云数据集的可视化探索和分析特别有用。

  63. lasio:lasio 是一个用于读取和写入 Log ASCII 标准 (LAS) 文件的 Python 库,该文件通常用于存储石油和天然气行业中的测井数据。虽然不是专门针对点云数据,但它在处理 LAS 格式的点云时非常有用。

  64. Pypotree:Pypotree 是一个用于读取、写入和操作 Potree 格式的点云数据的 Python 库。它允许用户将 Potree 点云转换为 LAS 或 PLY 格式,并对 Potree 数据执行各种操作。

  65. gpsd-py3:用于访问 GPSD 的 Python 库,GPSD 是一个从各种来源检索和解析 GPS 数据的服务守护进程。它提供了一个简单的界面来与 GPS 设备交互并访问位置、速度和时间信息。

  66. gpxpy:用于解析 GPX(GPS 交换格式)文件的库。它可以轻松读取、写入和操作 GPS 轨迹、路线和航路点数据。该库提供了一个高级 API,用于处理 GPX 文件并从中提取信息。

  67. pynmea2:用于解析来自 GPS 设备的 NMEA(国家海洋电子协会)数据的库。它能够从 NMEA 句子中提取各种信息,例如纬度、经度、速度和时间。pynmea2 简化了解析过程,并提供了一个方便的接口来处理 GPS 数据。

  68. geograpy3:geograpy3 是一个用于从文本中提取位置名称的库,对于基于文本信息或反向地理编码的 GPS 数据进行地理定位非常有用。

  69. PyGeodesy:一个用于大地测量和坐标转换的库,提供基于不同模型的距离、方位和目的地计算的函数。

  70. simplekml:用于生成 KML(Keyhole 标记语言)文件的库,允许创建 KML 文档,以便在 Google Earth 或其他 KML 兼容软件中可视化 GPS 和地理空间数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/813400.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTML快速入门

目录 一、HTML基础 1、HTML是什么? 2、认识 HTML 标签 3、HTML文件的基本结构 二、HTML快速开发 三、HTML常见标签 1、标题标签:h1~h6 2、段落标签:p 3、换行标签:br 4、图片标签:img 5、超链接&#xff1a…

Python单元测试框架—pytest常用测试报告类型

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快 先前博客有介绍pytest测试框架的安装及使用,现在来聊…

Python赋能AI数据分析开启人工智能新时代

文章目录 一、Python是办公自动化的重要工具二、Python是提升职场竞争力的利器三、Python是企业数字化的重要平台四、Python是AI发展的重要通道之一《编程菜鸟学Python数据分析》编辑推荐内容简介作者简介目录前言为什么要写这本书读者对象如何阅读本书 随着我国企业数字化和信…

运动听歌哪款耳机靠谱?精选五款热门开放式耳机

随着人们对运动健康的重视,越来越多的运动爱好者开始关注如何在运动中享受音乐。开放式蓝牙耳机凭借其独特的设计,成为了户外运动的理想选择。它不仅让你在运动时能够清晰听到周围环境的声音,保持警觉,还能让你在需要时与他人轻松…

CentOS 7开机启动过程,引导和服务,密码的修改

开机启动过程: 引导过程:1.开机自检(BIOS)->2.MBR引导->GRUB菜单->加载内核kernel->systemd进程初始化 程序:执行特定任务的一串代码,静态,存在硬盘中。 进程:运行中的程序叫进程&#xff0…

Django之rest_framework(一)

一、请求和响应对象介绍 REST framework引入了2个新的对象:Request和Response 1.1、Request rest_framework.request.Request 该对象扩展了常规的HttpRequest ,增加了对REST框架灵活的请求解析和请求认证的支持 官网:Requests - Django REST framework 主要属性: data 这…

Oracle 数据库全表扫描的4种优化方法(DB)

全表扫描的工作是扫描高水位一下所有的数据块。 这里就有一个问题,什么是高水位线。高水位的标志存在表头。 该数据块以后都是崭新未格式化的数据块,高水位的目的有二。它是全表扫描的 终点,并行插入的起点! 优化全表扫描的办法有…

类和对象(拷贝构造函数)

目录 拷贝构造函数 特征 结论: 拷贝构造函数 拷贝构造函数:只有单个形参,该形参是对本类类型对象的引用(一般常用const修饰),在用已存 在的类类型对象创建新对象时由编译器自动调用。 特征 拷贝构造函数也是特殊的成员函数&…

AD7685BRMZRL7 16位 2.3V 低功耗模数转换器芯片 ADI

AD7685BRMZRL7是一款由ADI(亚德诺)公司生产的模数转换器(ADC)芯片。该芯片的主要功能是将模拟信号转换为数字信号,以便在数字系统中处理. AD7685BRMZRL7 规格信息: 制造商:Analog Devices Inc. 产品种类:模…

【SpringBoot】获取参数

获取参数 传递单个参数传递多个参数传递对象后端参数重命名传递数组传递 json 数据获取 URL 中参数上传文件获取 cookie 和 session获取cookie获取session 传递单个参数 RequestMapping("/user") RestController public class UserController {// 传递单个参数Reque…

实现自动打包py及替换pyinstaller --add-data参数的方法

2024年了,PyInstaller已经来到了6.5.0版本,可我还是不会用它那个--add-data的方法,度了几圈试了试,始终不(行)如(不)意(通),就是没能把附加文件&a…

红色文化展馆3D线上互动展览推动党建创新发展

实现现代化是世界各国人民的共同追求。在追求现代化的艰苦卓绝奋斗中,我们党领导人民不仅创造了世所罕见的经济快速发展和社会长期稳定两大奇迹,而且成功走出了中国式现代化道路,创造了人类文明新形态。对党建学习也应该与时俱进,…

c语言多功能计算软件170

定制魏:QTWZPW,获取更多源码等 目录 题目 要求 主要代码片段 题目 设计一个计算器软件,具备如下功能提示界面。 要求 设计出界面,注意界面名称最后为自己的姓名;(20分)能够实现加、减、乘、…

Linux之bpfjit(2)使用分析和mini-tcpdump实现

Linux之bpfjit(2)使用分析和mini-tcpdump实现 Author: Once Day Date: 2024年4月13日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文章可以参考专栏:…

QT windeployqt打包出现无法正常启动问题

QT 通过windeployqt 打包后出现的问题 原因QT构建选择的是64位的 但是windows下运行的却是32位的 步骤打开32的所在路径 一般在上一级目录会有安装好的64位的MSVC工具 运行打包即可

《乱弹篇(27)回乡祭扫感慨多》

人老了,真的就要记住“好汉不提当年勇,梅花不提前世绣”这话。 忆往昔,中青年时代的笔者精力旺盛,也曾只身一人闯荡江湖,把自己的足迹印到过大半个中国土地上,可如今岁近耄耋残年,清明节想回一…

Python | Leetcode Python题解之第19题删除链表的倒数第N个结点

题目: 题解: class Solution:def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:dummy ListNode(0, head)first headsecond dummyfor i in range(n):first first.nextwhile first:first first.nextsecond second.nextsecond.ne…

gemini1.5 API调用

https://ai.google.dev/pricing?hlzh-cn 查询可用的model https://generativelanguage.googleapis.com/v1beta/models?keyxxx 使用postman调用 https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-pro-latest:generateContent?keyxxx https://ai.google…

聊一下HashMap的底层原理

HashMap作为我们熟悉的一种集合,今天就来聊一下它的原理、数据结构。 1.HashMap的数据结构 JDK1.7的数据结构是数组链表,JDK1.7还有人在用?不会吧…… 说一下JDK1.8的数据结构吧: JDK1.8的数据结构是数组链表红黑树。 数据结…

Vue pdfjs

最终效果图 官网 https://mozilla.github.io/pdf.js 下载 放入项目 vue页面嵌入本地下载好的html sessionStorage.setItem(sdfDldj8KJ45SDF, encodeURIComponent(file_url)) <template><div style"height:100%"><iframe:id"1":key"…