You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Groovy中如何将List<E>转换为Tuple<E>?

在Groovy中将List转换为Tuple的正确方法

可以将Groovy的List<E>转换为Tuple<E>,核心是利用Groovy的**扩展操作符(*)**将列表元素展开,传递给Tuple的构造器,这样就能把列表的每个元素作为Tuple的元素,而不是把整个列表当作单个元素。

正确实现代码

def a = [1, 2, "three"]
// 使用扩展操作符展开列表元素,传递给Tuple构造器
def b = new Tuple(*a)

println(b)          // 输出:(1, 2, three)
println(b.getClass()) // 输出:class groovy.lang.Tuple

为什么你之前的方法不行

  • a as Tuple:这种类型转换会把整个列表作为单个元素传入Tuple构造器,相当于执行new Tuple(a),所以得到的是包含原列表的Tuple(即[[1, 2, three]]),不符合预期。
  • a.asImmutable():这个方法返回的是JDK提供的UnmodifiableRandomAccessList,它只是不可变的列表,本质还是List类型,并非Groovy的Tuple。

补充说明

Groovy的Tuple是不可变的,元素数量固定,和Python的tuple特性一致。如果需要固定长度的元组(比如二元组、三元组),也可以使用Tuple2、Tuple3等专用类,同样可以用扩展操作符转换:

def list = [1, "two"]
def tuple2 = new Tuple2(*list)
println(tuple2) // (1, two)

内容的提问来源于stack exchange,提问作者dojuba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 11:05:23