Java中的数组数据结构需要了解的要点

Com.Java.Basis 第七课 JAVA中的数据结构中的数组 数组 阅读详情

. 首先,数组是Java中的对象。它们不是像int、short或long这样的基本类,也不是具有很多方法的全功能对象,但由于它们是对象,所以它们隐式地扩展了Object,这就是为什么可以使用数组引用(例如toString())调用java.lang.object的任何方法。

2. Java中数组的另一个重要之处是,一旦创建,就不能更改数组的大小。好奇的开发人员可能会问,我们如何在Java中拥有像ArrayList这样的动态集合,可以在饱和的时候调整自身大小?好吧,扩容不像你想得那样,可以简单地增加一个数组的大小来容纳额外的元素。为了增加大小,必须创建一个新数组,并将内容从旧数组复制到新数组。尽管存在将元素从一个数组复制到另一个数组的快速方法,但它仍然是一个代价很大的操作,还会降低Java应用程序的性能。 这就是为什么初始化具有适当大小的数组或集合仍然是最好的做法之一。

3. 关于数组,第三件要知道的是它的长度属性,它告诉你数组的大小或它可以容纳多少元素。这通常也是造成混淆的原因,因为字符串有类似的length()方法,这是一个方法,而数组长度是属性,所以不再有括号。另一个增加这种混淆的是arraylist的size()方法,它也返回arraylist可以容纳多少元素。 下面是一个代码片段示例,用于查找Java中数组的长度。

int[] arrayOfInts = new int[] { 101, 102, 103, 104, 105 };

System.out.println("length of arrayOfInts is : " + arrayOfInts.length); // print 5

在Java中循环遍历数组时,可以使用数组的长度来避免访问无效的索引,如下一个示例所示。

4.数组索引从零开始,因此第一个元素的索引为0,最后一个元素的索引为length -1。 此属性用于迭代for循环中的所有元素。 String[] cities = new String[]{"London", "Paris", "NewYork", "HongKong", "Tokyo"};

<b>for</b>(<b>int</b> i=0; i<cities.length; i++){
 String city = cities[i];
 System.out.println(<font>"Current city is @ "</font><font> + city);
 }
Output :
Current city is @ London
Current city is @ Paris
Current city is @ NewYork
Current city is @ HongKong
Current city is @ Tokyo
</font>

您可以看到,我们从0(第一个元素)开始循环,以小于长度的方式结束循环,例如length -1(最后一个元素索引)。如果尝试访问数组[长度],将获得arrayIndexOutOfBoundsException,因为最后一个索引是length -1。

5. 正如我之前所说的,Java虚拟机将数组视为对象。数组的类型是“[elementType”,其中element type是元素的类型。例如,一个(一维)整数数组的类型为“[I”,同样,一维短数组的类型为“[S”,一维浮点数组的类型为“[F”。对于二维数组,可以得到两个“[[”,例如,二维int数组的类型为“[[i”。当您在Java中打印数组时,可以检查这一点。它打印其元素类型和哈希代码,如下所示。

<b>public</b> <b>class</b> PrintArrayTypes{
 <b>public</b> <b>static</b> <b>void</b> main(String args[]) {
 <font><i>// type of one dimensional array in Java</i></font><font>
 <b>int</b>[] arrayOfInts = <b>new</b> <b>int</b>[] { 101, 102, 103, 104, 105 };
 System.out.println(arrayOfInts);
 <b>short</b>[] arrayOfShorts = <b>new</b> <b>short</b>[] { 20, 30, 40, 50, 60 };
 System.out.println(arrayOfShorts);
 <b>float</b>[] arrayOfFloats = <b>new</b> <b>float</b>[] { 2.0f, 3.0f, 4.0f, 5.0f, 6.0f };
 System.out.println(arrayOfFloats);
 </font><font><i>// type of two dimensional array in Java</i></font><font>
 <b>int</b>[][] arrayOfArrayOfInts = { { 1, 2, 3 }, { 10, 20, 30 },
 { 100, 200, 300 } };
 System.out.println(arrayOfArrayOfInts);
 <b>double</b>[][] arrayOfArrayOfDoubles = { { 2.0, 3.0 }, { 4.0, 5.0 } };
 System.out.println(arrayOfArrayOfDoubles);
 }
}
Output
<p>[I@1693b52b
<p>[S@3b5b25a1
<p>[F@5d038b78
<p>[[I@7b9a29
<p>[[D@32c5f9fe
</font>

6.如果关注我的上一个示例,那么您会注意到使用toString()打印数组不会产生除元素类型之外的任何有用的内容。 理想情况下,我们希望按照它们存在的顺序查看数组的元素。 我们可以重写array类的toString()方法吗?不,这不是一个选项,但不要担心我们有一个实用程序类java.util.Arrays,它包含几种方法来处理不同类型的数组。 我们可以使用Arrays类的toString()和deepToString()方法在Java中打印一维和多维数组的数组元素,如下所示。

 

 

7. 与toString()类似,数组的equals()方法也没有用处。在大多数情况下,我们希望将数组的元素及其顺序与另一个数组及其元素进行比较,但array的equals()方法不这样做,而是引用比较,仅当两个变量都指向同一个数组对象时才返回true,如下例所示。但是不用担心,Arrays类用equals() 和deepEquals() 方法来比较Java中的一维数组和多维数组元素。您可以通过以下示例推断出相同的理解:

<b>public</b> <b>class</b> ArrayEquality{
 <b>public</b> <b>static</b> <b>void</b> main(String args[]) {
 String[] cities = <b>new</b> String[]{<font>"London"</font><font>, </font><font>"Paris"</font><font>, </font><font>"NewYork"</font><font>, </font><font>"HongKong"</font><font>, </font><font>"Tokyo"</font><font>};
 String[] metros = <b>new</b> String[]{</font><font>"London"</font><font>, </font><font>"Paris"</font><font>, </font><font>"NewYork"</font><font>, </font><font>"HongKong"</font><font>, </font><font>"Tokyo"</font><font>};
 String[] capitals = cities;
 
 </font><font><i>// comparing array using == operator</i></font><font>
 System.out.println(</font><font>"cities == metros : "</font><font> + (cities == metros));
 System.out.println(</font><font>"cities == capitals : "</font><font> + (cities == capitals));
 
 
 </font><font><i>// comparing array using equals() method</i></font><font>
 System.out.println(</font><font>"cities.equals(metros) : "</font><font> + cities.equals(metros));
 System.out.println(</font><font>"cities.equals(capitals) : "</font><font> + cities.equals(capitals));
 
 </font><font><i>// comparing array using Arrays.equals() method</i></font><font>
 System.out.println(</font><font>"Arrays.equals(cities, metros) : "</font><font> + Arrays.equals(cities, metros));
 System.out.println(</font><font>"Arrays.equals(cities, capitals) : "</font><font> + Arrays.equals(cities, capitals));
 
 }
}
Output :
cities == metros : false
cities == capitals : <b>true</b>
cities.equals(metros) : false
cities.equals(capitals) : <b>true</b>
Arrays.equals(cities, metros) : <b>true</b>
Arrays.equals(cities, capitals) : <b>true</b>
</font>

您可以看到尽管元素及其顺序相同,第一条语句是假的,因为“==”运算符仅在两个变量都指向同一数组时才返回真,这是第二次相等性检查的情况。同样,equals()方法也模拟了==运算符的行为,因为数组不会重写对象的equals()方法,其默认行为是基于相同的引用来决定相等性。 Arrays.equals()是检查两个数组在Java中是否相等的正确方法。为此,你应该一直使用它。

8. Java程序员应该习惯使用deepEquals()方法来检查两个多维数组的相等性,因为Arrays.equals()方法不执行多维比较。 以下是检查Java中多维数组相等性的示例:

<b>public</b> <b>class</b> MultiDimensionalArray{
 <b>public</b> <b>static</b> <b>void</b> main(String args[]) {
 <b>int</b>[][] a1 = { {2,4}, {4,6}, {8,10} };
 <b>int</b>[][] a2 = { {12,14}, {14,16}, {18,20} };
 <b>int</b>[][] a3 = { {2,4}, {4, 6}, {8,10} };
 
 <font><i>// checking if two multi-dimensional array of same length but different element equal or not</i></font><font>
 <b>boolean</b> result = Arrays.deepEquals(a1, a2);
 System.out.println(</font><font>"Does two dimensional array a1 and a2 are equal : "</font><font> + result);
 
 
 </font><font><i>// checking if two multi-dimensional array of same length, elements equal or not</i></font><font>
 result = Arrays.deepEquals(a1, a3);
 System.out.println(</font><font>"Does two dimensional array a1 and a3 are equal : "</font><font> + result);
 
 }
}
Output :
Does two dimensional array a1 and a2 are equal : false
Does two dimensional array a1 and a3 are equal : <b>true</b>
</font>

9.使用java时,你需要多次在静态数组与动态数组之间进行转换。

10. 在Java中有几种初始化数组的方法。你也可以在不初始化的情况下创建它们,在这种情况下,所有存储桶都将保持元素类型的默认值,例如,如果你创建一个空数组并且没有初始化它,则所有存储桶都将保持为零,因为这是Java中整数变量的默认值。 类似地,布尔数组默认使用false值初始化,String数组使用空值初始化。 如果您事先知道这些值,则可以在创建时初始化数组,如下所示:

<b>int</b>[] numbers = {1, 2, 3, 4, 5}; <font><i>// valid</i></font><font>
<b>int</b> multipleOfThree[] = {3, 6, 9, 12, 15}; </font><font><i>// valid </i></font><font>
<b>int</b>[] even = <b>new</b> <b>int</b>[]{2, 4, 6, 8, 10}; </font><font><i>// valid</i></font><font>
</font>

11. 一个额外的提示是,array与arraylist有很大的不同,后者是一个动态数组,它可以根据需要调整自身的大小。另一方面,创建后不能更改数组的大小。除了这一事实之外,这两个类之间还有几个不同之处,例如ARAYLIST是Java集合框架的一部分,但数组不是。

这是关于Java中数组数据结构的一些要点的列表。使用数组来保存相同类型的元素,例如整数、字符串或对象,但不能混合它们,例如Java数组不能同时包含整数和字符串,在编译时是错误的,但对于对象,如果编译器允许,它将在运行时抛出arraystoreException。同样,如果知道索引,数组也是用于访问元素的快速数据结构之一

欢迎工作一到五年的Java工程师朋友们加入Java架构师:697558955

群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的

架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代

Java中数组与链表的数据结构解析与应用 本文还有配套的精品资源,点击获取 简介:数据结构是计算机科学中的基础,对于算法高效执行至关重要。本文详细介绍了Java编程中关键的线性数据结构:数组和链表。数组是连续内存空间,提供了快速的随机访问;链表由节点组成,便于插入和删除。文章还涉及了数组和链表的变体,如动态数组和双向链表,并讨论了其他重要的Java数据结构,包括栈、队列、集合和映射。掌握这些数据结构对于编写高效、可... 阅读详情

相关推荐

树莓派计算模块摄像头连接与配置全攻略:从硬件跳线到软件驱动

在嵌入式视觉项目中,摄像头模组的连接与驱动是图像采集和视频分析的基础。其核心原理是通过CSI-2高速串行接口协议传输图像数据,并依赖I2C总线进行传感器寄存器配置。这一技术方案的价值在于为工业控制、机器人等嵌入式设备提供了稳定、高性价比的视觉感知能力。在实际应用中,开发者常面临摄像头无法识别、I2C通信失败等挑战,尤其是在使用树莓派计算模块时,其硬件接口需要通过I/O板引出,配置过程涉及设备树参数调整等关键步骤。本文聚焦于解决这些实际问题,详细拆解了从硬件连接到软件驱动的完整流程,特别是针对CM4、CM3+

weixin_29184075的博客 336

Java基础(18)之类名作为形参和返回值

1. 新参和返回值 1.1 类名作为形成和返回值 代码示例: 方法的形参是抽象类名 抽象动物类: 定义了一个抽象的eat方法 动物的操作类: 创建一个useAnimal方法,它的形参是抽象类Animal 测试类: 创建操作类对象,并调用方法: 调用方法时,提示我们需要的是Animal类型的实参。往下看 在操作类中,看到Animal a 也能调用方法,说明a是一个实例对象。 但是Anima...

笑笑不说话 3510

Cadence仿真实战:从零构建高精度带隙基准电压源

本文是一份详细的Cadence仿真实战指南,指导读者从零开始构建高精度带隙基准电压源。文章首先解释了带隙基准电压源稳定输出电压的原理,然后逐步演示了在Cadence Virtuoso环境中如何搭建测试电路、测量关键温度系数、计算并搭建核心电路,并通过参数扫描和迭代调优来驯服温度漂移,最终实现低漂移的基准电压输出。

weixin_29207533的博客 242

java中数组的使用

package demo01; /* 数组:是一种容器,可以同时存放多个数据值 1.数组是一种引用数据类型 2.数组当中的多个数据,类型必须统一 3.数组的长度在程序运行期间不可改变 数组的初始化:在内存中创建一个数组,并且向其中赋予一些默认值 两种常见的初始化方式 1.动态初始化(指定长度) 2.静态初始化(指定内容) 动态初始化数组的格式: 数据类型[] 数组名称 = 数据类型[数组长度...

carrotluotian的博客 532

告别Colmap!在ROS2 Humble上,用Fast-LIVO2直接为3D Gaussian Splatting准备数据全流程

本文详细介绍了在ROS2 Humble环境下,使用Fast-LIVO2为3D Gaussian Splatting(3DGS)准备数据的全流程。通过优化Fast-LIVO2配置、实时数据同步机制和3DGS训练参数,显著提升了三维重建效率和质量,相比传统Colmap流程节省95%以上的预处理时间。适用于Ubuntu22.04系统,适合机器人及自动驾驶领域的三维重建应用。

weixin_28688385的博客 588

source tree clone error:fatal remote error: Repository not found

source tree clone error:fatal remote error: Repository not found

Linda的前端开发路 3077

数组方法的返回值使用

计算两个数组的交集 <script> var arr1 = [1, 2, 2, 3, 4, 5]; var arr2 = [2, 2, 3, 4, , 6, 7, 8]; // 输出的内容 [2,3,4] // 循环拿出arr1数组中的每一个数据 /* 第一次调用 item = 1 arr2.indexOf(item) !== -1 === arr2.indexOf(1) !== -1 条件不成立 不会把item返回到新的

牛先森家的博客 2371

基于simulink的多能源系统协同控制的复杂场景实例:氢燃料电池+锂电池混合动力电动汽车能量管理仿真

本文介绍了基于Simulink的氢燃料电池与锂电池混合动力电动汽车能量管理系统的建模与仿真方法。系统包含驾驶循环输入、氢燃料电池、锂电池、能量管理和电机驱动等模块,通过Simulink实现各模块的协同控制。文章详细说明了从模型创建到性能评估的完整流程,包括驾驶循环输入设置、燃料电池和锂电池子系统建模、能量管理策略设计等关键步骤。该仿真模型可验证不同工况下的系统响应和能量利用效率,为优化混合动力汽车的能量管理策略提供有效工具。通过引入更复杂的物理细节和环境因素,可进一步提升模型的实用性和准确性。

xiaoheshang_123的博客 368

返回值是数组类型的类怎么写

在上面的例子中,我们先创建了一个 `ArrayClass` 类的对象 `arrayClass`,然后调用其中的 `createArray()` 方法,将返回的数组赋值给了 `arr` 数组。需要注意的是,如果返回值为数组类型,那么在方法中创建的数组是一个引用类型,即返回的是数组的地址,而不是数组本身。如果返回值是数组类型,那么在方法中创建数组并返回时,返回值类型应该是数组类型。如果想要在方法外部使用返回的数组,需要先创建一个该数组类型的对象,然后将返回的数组赋值给该对象。// 在方法外部使用返回的数组。

m0_73078066的博客 1017

2026年紫光同创数字IC笔试试卷带答案

FPGA基础知识与设计要点摘要 本文围绕FPGA与数字IC设计核心概念,通过单选题、波形分析题、多选题和简答题形式,系统梳理了以下关键知识点: FPGA基础架构 查找表(LUT)是实现组合逻辑的基本单元(题1) CLB包含LUT、触发器和进位链,后者加速算术运算(题6,10) 布局布线优化是减少关键路径延迟的核心方法(题7) 时序分析要点 建立时间(时钟沿前数据需稳定)与保持时间(时钟沿后需保持)的定义(题2,简答1) 亚稳态成因及两级同步器处理跨时钟域信号的方法(多选题1,波形题5) 特殊设计技术 异步复

Open 114

1.2、基于卷积神经网络(CNN)的车牌自动识别系统(matlab)

基于卷积神经网络(CNN)的车牌自动识别系统(matlab)

XU157303764的博客 2911

java中数组的返回值是什么类型_Java中的数组数据结构需要了解的要点

. 首先,数组是Java中的对象。它们不是像int、short或long这样的基本类,也不是具有很多方法的全功能对象,但由于它们是对象,所以它们隐式地扩展了Object,这就是为什么可以使用数组引用(例如toString())调用java.lang.object的任何方法。2. Java中数组的另一个重要之处是,一旦创建,就不能更改数组的大小。好奇的开发人员可能会问,我们如何在Java中拥有像Ar...

weixin_39845220的博客 350

第81篇:Vibe Coding时代:LangGraph + Eval评估体系实战,解决 Agent 优化全靠感觉的问题

本文介绍了一个为LangGraph Coding Agent设计的评估体系解决方案。文章首先指出了当前AI Coding Agent开发中的常见问题:优化过程缺乏客观评估标准,导致改进效果难以量化。随后提出了一个完整的评估框架,包括评估指标(任务成功率、质量指标、安全指标、成本指标和流程指标)、项目结构设计和评估案例集。 核心内容包括: 设计了JSON格式的评估案例集,覆盖正常任务、边界任务和高风险场景 实现了模拟Agent输出的演示代码 构建了多维度评分系统,包括关键词匹配、禁用词检测和成本评估 提供了评

sundong_81的博客 47

数据结构-线性表:数组

title: 数据结构-线性表:数组 tags: 数据结构,数组 renderNumberedHeading: true grammar_cjkRuby: true 概述 线性表是由N个元素组成的有序排列,也是最常见的一种数据结构,主要包括:数组 和 链表 数组结构 描述 数组是一种存储单元连续,用来存储固定大小元素的线性表。Java中对应的集合实现如:ArrayList 特征 一致性:数组只能保存相同数据类型元素,元素的数据类型可以是任何相同的数据类型。 有序性:数组中的元素是有序的,通过下标访问.

weixin_40233598的博客 365

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【数据结构与算法】Java中的基本数据结构:数组、链表、树、图、散列表等。

在本文中,我们将深入探讨Java集合框架中的核心数据结构,包括数组、链表、树、图、散列表、栈、队列、集合、映射和优先队列。通过分析每种数据结构的实现原理和特点,你将学会如何根据具体需求选择合适的数据结构,从而提升程序的性能和效率。文章还包含了Java代码示例和流程图,帮助你更好地理解和应用这些数据结构。

Dylaniou的博客 2540

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

数据结构中的数组和不同语言中数组的区别

本文完全copy转发的:https://mp.weixin.qq.com/s/E-c41h2v_AfffrlAQpkyLg 目录 1. C/C++中数组的实现方式 2. Java中数组的实现方式 3. JavaScript中数组的实现方式 在大部分数据结构和算法书籍中,数组作为最基础的数据类型,是最先被介绍的。一般我们都是这么定义数组的。 数组这种数据结构,是存储相同数据类型的一块连...

sinat_14913533的博客 1573

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Java数据结构之数组

数组是一种线性数据结构,用于存储相同类型的元素的固定大小的集合。在 Java 中,数组本质上是一个对象,它存储一组连续的内存空间,用于存放相同类型的元素,并通过索引(index)来访问这些元素。// 声明一个长度为5的整型数组数组是固定大小、连续内存、同类型的集合。是 Java 中最基础的数据结构,访问快(O(1)),但增删慢(O(n))。多维数组是“数组的数组”。推荐使用工具类进行操作。虽然功能有限,但它是ArrayListHashMap等集合类的底层基础。

m0_75236543的博客 765

数据结构Java01【数据结构概述、数组基本使用】

课件(源码、XMind文件): P1-1.1数据结构概述 什么是数据结构:数据与数据之间的关系! 数据的存储结构:数据在计算机中如何存储! 数据的逻辑结构:数据与数据之间的关系! P2-1.2算法概述 P3-2.1数组的基本使用 P4-2.2数组元素的添加 P5-2.3数组元素的删除 P6-2.4面向对象的数组 P7-2.5查找算法之线性查找 P8-2.6 查找算法之二分法查找 ...

upward 2825

深入了解 Java 中的数组与字符串

数组是一种可以存储多个相同类型数据的容器。// 声明一个整型数组// 也可以这样声明数组在使用前必须进行初始化,可以采用静态初始化和动态初始化两种方式。静态初始化:在初始化数组时直接指定数组元素的值。// 静态初始化一个整型数组动态初始化:在初始化数组时只指定数组的长度,系统会为数组元素分配默认值。// 动态初始化一个长度为5的整型数组。

zsnandzmn的博客 1125

Java 的数据结构:从数组到链表的基础实现

数组和链表各自有其优势和不足,适用于不同的场景。数组的优势在于快速访问和空间效率,但在插入和删除操作方面有所限制。链表则在动态数据处理和插入删除方面有明显的优势,特别适合频繁修改数据的应用场景。了解它们的特性和差异,将帮助你在编程中做出合适的选择。希望这篇文章能帮助你掌握 Java 中这两种重要的数据结构,提升你的编程能力。

一名热衷于技术的全栈开发者,专注于前端与后端的全面技术探索。在这里,我将分享我在技术领域的学习与成长,助力更多开发者的进步。 1210

如何学习Java中的数组

在编程中,数组是一种非常重要的数据结构,它允许我们存储多个相同类型的的元素,并通过索引来访问这些元素。在许多编程语言中,数组都是基础且核心的概念。数组包括一维数组、二维数组和三维数组。一维数组的概念:一维数组是指只有一个下标的数组,用来表示一组具有相同类型的数据。二维数组的概念:二维数组是由多个长度相同的一维数组构成的,可以用来表示有行有列的数据三维数组的概念:三维数组,是指维数为三的数组结构。三维数组是最常见的多维数组,由于其可以用来描述三维空间中的位置或状态而被广泛使用。

xunoo的博客 1743

Java 中的数据结构--简单汇总

具体如下:以及 Java 原生数组类型。

两点 2155

数据结构基本要点(Java语言描述)

数据结构Java语言描述 本文主要总结几种常见的数据结构的基本要点。 数据结构 数组和字符串是两种最基本的数据结构,分别用连续内存存储数字和字符。 链表和树需要操作大量的指针,所以使用时要留意代码的鲁棒性。 栈与递归紧密相关,队列与广度优先遍历算法紧密相关 数组 特点 占用连续内存,顺序存储数据。 创建数组时首先需要指定数组容量大小,然后根据大小分配内存。也正因如此,数组的空间效率较低,经常会...

qq_40804746的博客 832
上一篇: 史上最全Java面试题!进程,线程相关部分下篇(带全部答案)
下一篇: 工程架构师对3月14号的白色情人节有什么看法??
普通网友
博客等级 码龄8年 15粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值