加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-14 16:47:14 所属栏目:大数据 来源:网络整理
导读:def haveRepetArray=[1,5,1,6,8,2,9,4,12] def findRepetition=[:]//找到重复的,重复的map值大于1不重复的值等于1 def repetitionRes=[]//重复的结果 def noRepetitionRes=[]//不重复的结果 def arrElemIndex=[]//得到重复元素的下标 def mapElemindex=[:]/
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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读