从Set中提取索引值有什么问题

Cha*_*Gan 3 groovy

这是我的一段代码.

def http = [100 : 'CONTINUE',200 : 'OK',400 : 'BAD REQUEST']
def listset = http.keySet()
log.info listset[0]
Run Code Online (Sandbox Code Playgroud)

我希望在这里,作为listset[0]= 100.

但是......

groovy.lang.MissingMethodException:
    No signature of method: java.util.HashMap$KeySet.getAt()
        is applicable for argument types: (java.lang.Integer) values: [0]
    Possible solutions: getAt(java.lang.String), getAt(java.lang.String), putAt(java.lang.String, java.lang.Object), wait(), toSet(), sort() error at line: 32
Run Code Online (Sandbox Code Playgroud)

这有什么不对.. ??

mar*_*rbu 6

错误消息是全部:您调用的方法listset.getAt()未实现.

您可以通过将集转换为数组或列表来解决此问题,例如: listset.toList()[0]listset.toArray()[0].

这就是说我不确定这样做是否有意义,因为set不能保证定义中元素的顺序.如果需要处理地图的所有键,请改用迭代器.