Groovy Tip 5 数组
一、数组的定义及赋初值
在Groovy语言中,数组的定义和Java语言中一样。
def
a =
new
String[
4
]
def
nums =
new
int
[
10
]
def
objs =
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)