Groovy Tip 5:数组

Groovy语言的循环实现 Groovy 语言的设计目标是提高 Java 的开发效率,因此具有许多 Java 所不具备的特性。例如,Groovy 支持闭包、动态类型,以及更为优雅的语法。了解这些基础将为后续的循环实现奠定基础。Groovy 的循环实现灵活且强大,通过多种循环结构和闭包的结合使用,大大提高了代码的可读性和效率。无论是基本的for循环,条件循环,还是基于迭代器和闭包的复杂操作,都能轻松应对。在日常开发中合理使用这些功能将极大地提高开发效率。 阅读详情

一、数组的定义及赋初值

在Groovy语言中,数组的定义和Java语言中一样。

def a = new String[4]
  
  def nums = newint[10]
  
def bjs = new Object[3]

然后赋值也一样:

a[0] = 'a'
  a[1] = 'b'
  a[2] = 'c'
a[3] = 'd'

所不同的在于在数组定义的时候赋初值。

在Java语言里,对一个字符串数组这样定义:

String[] strs = new String[]{'a','b','c','d'};

而在Groovy语言中,对一个字符串数组则需要这样定义:

def strs = ['a','b','c','d'] as String[]

二、数组的遍历

在Groovy语言中,对数组的遍历方法很多,常用的是使用each方法:

a.each{
    println it
}

当然,你也可以使用增强for循环:

for(it in a)
  {
    println it
}

你还可以使用如下的遍历方式:

(0..<a.length).each{
     println a[it]
}

三、数组和List之间的转化

List对象转化成数组对象非常简单:

List list = ['a','b','c','d']
  def strs = list as String[]
println strs[0]

绝对没有Java语言那么复杂:

List list = new ArrayList();
    list.add("1");
    String[] strs = (String[])list.toArray(new String[0]);
  System.out.println(strs[0]);

而从数组转化成List对象也非常简单:

def strs = ['a','b','c','d'] as String[]
  
  List list = strs.toList()
println list.get(0)

你也可以这样转化:

def strs = ['a','b','c','d'] as String[]
  List list = strs as List
println list.get(0)

而在Java语言中,你需要这样转化:

List list = Arrays.asList(strs)

Groovy语言的数据结构 Groovy是一种基于JVM的动态语言,因其简洁性和灵活性受到许多开发者的欢迎。作为一种强类型语言,Groovy不仅支持面向对象编程,还提供了多种数据结构,使得开发者可以更加高效地处理数据。在本篇文章中,我们将深入探讨Groovy语言中的数据结构,介绍其基本特性、常用操作以及在实际开发中的应用。 阅读详情

相关推荐

Groovy编程艺术:探索集合与数组的奥秘

在Groovy的世界中,集合和数组的初始化与操作方式与Java有着显著的不同。本文将带你一步步探索Groovy中集合与数组的初始化、类型转换、元素访问和操作的奥秘。

m0_62153576的博客 527

【Groovy】集合遍历 ( 使用 for 循环遍历集合 | 使用集合的 each 方法遍历集合 | 集合的 each 方法返回值分析 )

一、使用 for 循环遍历集合、 二、使用 each 方法遍历集合、 三、集合的 each 方法返回值分析、 四、完整代码示例、

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 8671

1991-2020年气候背景数据集

2011 年,国家气象信息中心对 1951-2010 年 2400 余个地面站气温、气压、降水、湿度、日照等 19 大要素项的定时观测资料和日极值资料中由数字化过程中引起的系统性问题(例如数字化遗漏、整段拷贝等问题)进行质量检测、质量控制和错误数据的更正,形成较高质量的地面基础资料集。1991-2020年中国地面气候值数据集提供了中国2438个站点的气温、降水、气压、风向风速、相对湿度、水汽压、云、天气现象、能见度、蒸发、积雪、地温、冻土、日照共14个要素的气候背景信息。数据时间:30年平均。

地球资源数据云的官方博客 1597

Groovy之列表操作

Groovy中定义列表的方式有两种,一是使用Java中的方法来创建列表,二是使用Groovy语言中的方法来创建列表 Groovy中数组的定义方式也有两种,一是使用Java中的方法来创建数组,二是使用Groovy语言中的方法来创建数组,使用as关键字 注:因为Groovy中数组的操作方法与列表的操作方法相同,所以我只介绍列表的操作方式 3.1.2、leftShift方法 3.1.3、使用 ...

凉茶铺的博客 5145

STM32F407ZGT6最小系统:从原理图到PCB的实战设计与避坑指南

本文详细介绍了STM32F407ZGT6最小系统的设计与实现,从原理图到PCB布局的完整流程。重点解析了电源、时钟、复位和调试接口等核心模块的设计要点,提供了实用的PCB布局技巧和常见问题解决方案,帮助开发者避开设计陷阱,快速完成稳定可靠的STM32F407ZGT6最小系统设计。

weixin_30955617的博客 198

从PWM到正弦波:RC低通滤波器的魔法转换之旅

本文详细介绍了如何利用RC低通滤波器将STM32F103生成的PWM信号转换为高质量正弦波的技术原理与实践方法。通过分析滤波器设计、参数计算、硬件实现及Proteus仿真验证,为嵌入式开发者提供了一套完整的PWM转正弦波解决方案,适用于电机控制、音频信号生成等多种应用场景。

jupi8的博客 380

Groovy Tip 5 数组

                              Groovy Tip 5 数组 一、数组的定义及赋初值在Groovy语言中,数组的定义和Java语言中一样。    def a = new String[4]     def nums = newint[10] def objs = new Object[3] 然后赋值也一样:    a[0]

软件的信雅达 1万+

告别轮询!手把手教你用S32K3的FlexCAN Enhanced FIFO+DMA实现高效CAN FD数据接收

本文详细介绍了如何利用S32K3芯片的FlexCAN Enhanced FIFO与DMA组合方案,实现高效CAN FD数据接收,彻底告别传统轮询和中断模式。通过深度缓冲、智能过滤和DMA联动技术,该方案在5Mbps高负载场景下将CPU占用率从42%降至3%以下,显著提升系统实时性和吞吐量。

weixin_30906185的博客 502

Groovy Tip 24 魔幻数组 四

                                Groovy Tip 24 魔幻数组 四  数组还有一个重要内容就是要排序,排序是任何集合操作所躲不过去的。在Java语言中,在Collections接口中提供了“sort”方法来用于对List对象进行排序,可能我们在Java语言编程中已经用过无数次了,在这里限于篇幅就不多说了。在Groovy语言中,同样提供了“sor

软件的信雅达 4147

电压抬升电路设计

一、实验目的 掌握集成运放电压放大电路设计基本方法。 掌握基本仪器使用方法(电源、信号发生器、示波器)。 二、实验内容及结果 实验内容 基于集成运放设计一传感器信号采集电路。传感器输出信号在±50mV,频率为100Hz以内,模数转换器允许输入电压在0~5V,要求设计传感器与模数转换器之间的信号采集电路,实现传感器信号放大10倍,并适合模数转换器的输入。模数转换器的输入电阻为1KHz,设计电路时,可使用1KHz电阻作为信号采集电路负载,代替模数转换器。 实验具体要求如下: (1)确定电路形式,说明电压转

Safaearth的博客 4万+

AnyLogic 建立谢林模型

AnyLogic 建立谢林模型说明创建一个新模型创建代理人群体和离散空间双击 people 前的图标,编辑 Person设置 Agent 的形状(Person)在模型中启用离散时间,实现代理行为点击 Person,进行编辑点击运行按钮效果图 说明 我们将把 Schelling 的模型实现为一个基于离散空间/离散时间的代理模型。空间代表一个城市,每个单元格代表一个房子。 agent 是人,是两种颜色:黄色和红色。 最初,人是随机分布在城市中的。人比房子少,所以总是有一个人可能会移动。 这个模型中的 agent

qq_45642410的博客 2577

Groovy Tip 25 魔幻数组 五

             Groovy Tip 25 魔幻数组 五  本系列前面章节曾谈到过数组来模拟数学集合的一些操作,比如“交集”、“并集”、“集合求差”和“集合反转”等,都是集合的一些基本运算。但是,除此之外,还有一些集合的基本运算,如“属于”、“子集”等以及与它们的相关运算,却没有提及,因此在本节来一一谈到。首先说“属于”运算,我们说如果一个对象是数组中的一个元素,就说这个

软件的信雅达 4284

高频功率放大器的设计实现

摘 要 随着无线通信技术的高速发展,市场对射频电路的需求越来越大,同时对射频电路的性能要求也越来越高。高频功率放大器是位于无线发射级末端的重要部件,为了弥补信号在无线传输过程中的衰耗,要求发射机具有较大功率的输出,通信距离越远,要求的输出功率越大。在高频范围内,为了获得足够大的高频输出功率,就要采用高频功率放大器。 本次课程设计的高频功率放大器的技术指标包括输出功率、效率、功率增益、由于高频频功率放大器的输出功率比较大,耗能比较多,所以工作效率就显得比较重要。本课程设计的高频功率放大器电路由两极功率放大器

qq_43543515的博客 3万+

Groovy Tip 22 魔幻数组 二

                          Groovy Tip 22 魔幻数组 二  我们记得在前一篇《魔幻数组》系列中的例子中使用了一个名为list6的数组,如下:def list6 = [ 1, 1, 2, 2, 3, 3, 3, 5 ]      看到了它,我们就可以看到里面有很多重复元素,我们马上也就有了要把重复元素去掉的要求。在Java语言中,我们也

软件的信雅达 4217

线结构光相机原理详解以及精度控制总结

摘要:线阵结构光相机是工业三维检测的核心设备,结合线阵相机的高分辨率与结构光的主动三维成像能力。其工作原理基于线激光投射、逐线扫描、亚像素级条纹提取及三角测量法实现三维重建。精度受硬件、校准、环境和算法四因素影响,需通过优化硬件选型(如小像元相机、窄线宽激光)、精准校准(相机内参、激光平面)、环境控制(遮光、隔振、恒温)及算法优化(Steger算法、点云后处理)来提升。典型应用(卷材、轨道检测)中深度精度可达5-20μm,需根据场景需求平衡参数配置。

start_up_go的博客 940

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Groovy Tip 12 Range的用法

                             Groovy Tip 12 Range的用法  Groovy语言的Range的用法值得一说,因此还是把它单独提出来说一说。Range作为Groovy语言的一种数据类型,其实非常简单。Range类型数据的标志是“..”,形式如下:    def range = 1..10 Range类型和集合类型一样,可以使用那些使用

软件的信雅达 4522

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Groovy Tip 21 魔幻数组 一

Groovy Tip 21 魔幻数组 一 &lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt; Groovy语言作为一种敏捷性的语言,我们在集合类型的操作上已经见识到了它在编码方面敏捷的许多方面。比如,集合对象的声明、初始化、赋值和类似于“each”、“collect”等方法。...

技术代码资料库 78

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Groovy Tip 2 each方法和break

          Groovy Tip 2 each方法和break 在Groovy这样的动态语言中,闭包是其中的一个重要武器。而这些语言的开发者自然不会放弃使用这些武器,我们可以看到在Groovy语言的集合类中,广泛的使用了闭包。其中,each方法就是这样一个使用闭包的方法。我们知道,在Java中,我们使用下面的语句对集合类对象进行遍历:    for(int i=0;isiz

软件的信雅达 1万+

Groovy Tip 30 BigDecimal数据类型

                Groovy Tip 30 BigDecimal数据类型  Groovy语言比Java语言使用起来更为方便的一个地方就是Groovy语言引入了对大小数的运算。当然,我们这里所说的大小数,是指精度超过float类型和double类型的小数。我们可能在某些场合会涉及到对大小数的处理,如果是使用Java语言,我们只能是或者使用java.math.BigDeci

软件的信雅达 8732
上一篇: 一个http请求处理的工具类
下一篇: jsonobject 转换对象时过滤属性
无尽晴天
博客等级 码龄20年 33粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值