微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

groovy找到数组里的重复元素的下标

def haveRepetArray=[1,5,1,6,8,2,9,4,12]
  def findRepetition=[:]//找到重复的,重复的map值大于1不重复的值等于1
  def repetitionRes=[]//重复的结果
  def norepetitionRes=[]//不重复的结果
  def arrElemIndex=[]//得到重复元素的下标
  def mapElemindex=[:]//通过键值的方式存储重复元素
haveRepetArray.each{a->
      if(findRepetition[a]==null){//如果这个map里没有这个键的时候就给值1,
          findRepetition[a]=1  
      }else{//如果这个map里有这个键的时候说明他是重复的就把值加1
          findRepetition[a]=findRepetition[a]+1
      }
  }
findRepetition.each{m->
    if(m.value>1){//编历如果这个map键的值大于1说明就是重复的把他放到一个数组里
        repetitionRes+=m.key
    }else{//说明不是重复的把他放到另外一个数组里
        norepetitionRes+=m.key
    }
}
repetitionRes.each {entry ->//遍历重复的数组
    def tempArr=[]
    haveRepetArray.eachWithIndex {r,j->//遍历原始数组
     if(entry==r){//如果重复数组里的值等于原始数组里的值就把这个无素的索引放到一个新的数组里
         tempArr+=j//只取原始数组的索引
     }   
    }
    mapElemindex[entry]=tempArr//以键值对的方式存储数组
    arrElemIndex<<tempArr //添加一个新数组
} 
println arrElemIndex
println mapElemindex

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐