Groovy 来自java迭代器的填充列表
我想用Groovy 来自java迭代器的填充列表,groovy,collections,iterator,Groovy,Collections,Iterator,我想用java.util.Iterator中的对象填充列表。groovy源文件中有一个简单的类似java的代码 def itr = reader.read() List<FooRecord> ret = new ArrayList<FooRecord>() while (itr.hasNext()) { FooRecord rs = itr.next() ret.add(rs) } def itr=reader.read() List ret=new
java.util.Iterator
中的对象填充列表。groovy源文件中有一个简单的类似java的代码
def itr = reader.read()
List<FooRecord> ret = new ArrayList<FooRecord>()
while (itr.hasNext()) {
FooRecord rs = itr.next()
ret.add(rs)
}
def itr=reader.read()
List ret=new ArrayList()
while(itr.hasNext()){
foorrecord rs=itr.next()
返回添加(rs)
}
是否有groovier方法执行从
迭代器到列表的复制?您可以在迭代器上运行for each:
itr.each{ret << it}
itr.each{ret你有没有想过用for()代替while?在while之前实例化你的类呢?像这样
def itr = reader.read()
List<FooRecord> ret = new ArrayList<FooRecord>()
FooRecord rs = new FooRecord();
while (itr.hasNext()) {
rs = itr.next()
ret.add(rs)
}
def itr=reader.read()
List ret=new ArrayList()
FooRecord rs=新的FooRecord();
while(itr.hasNext()){
rs=itr.next()
返回添加(rs)
}
多亏了JB Nizetdef s='12345'
def s = '12345'
def List<String> f=s.iterator().collect{it}
def List f=s.iterator().collect{it}
或者在groovy中使用作为
关键字:
def myList = itr as List
因此,以下代码:
def list1 = [1, 2, 3]
def itr = list1.iterator()
println itr.class.name
println itr instanceof Iterator
def list2 = itr as List
println "list2: $list2"
println "list2 class: ${list2.class.name}"
打印出:
java.util.ArrayList$Itr
true
list2: [1, 2, 3]
list2 class: ArrayList$Itr1_groovyProxy
java.util.ArrayList$Itr
true
list2: [1, 2, 3]
list2 class: ArrayList$Itr1_groovyProxy