scala ArrayList[hashMap]中根据hash

2019-06-05  本文已影响0人  daley_磊

scala ArrayList[hashMap]中根据hashMap某个value值排序

我这里是以HashMap中 id 去排序。
直接上代码

package Test

import java.util


object ArrayListSortTest {
//  构造数据
  var list:util.ArrayList[util.HashMap[String,Object]] = new util.ArrayList[util.HashMap[String,Object]]
  var map:util.HashMap[String,Object] = new util.HashMap[String,Object]
  map.put("id","2")
  map.put("name","bbbbb")
  list.add(map)
  var map1:util.HashMap[String,Object] = new util.HashMap[String,Object]
  map1.put("id","3")
  map1.put("name","ccccc")
  list.add(map1)
  var map2:util.HashMap[String,Object] = new util.HashMap[String,Object]
  map2.put("id","1")
  map2.put("name","aaaaa")
  list.add(map2)
// 重写排序方法,实现通过id 升序
  class  compartor extends util.Comparator[util.HashMap[String,Object]] {
    override def compare(firstMap:util.HashMap[String,Object],secondMap:util.HashMap[String,Object]): Int ={
      var fintVal = Integer.valueOf(firstMap.get("id").toString)
      var sintVal = Integer.valueOf(secondMap.get("id").toString)
      return fintVal.compareTo(sintVal)
    }
  }

  def main(args: Array[String]): Unit = {
    println("-----> 排序前的顺序")
    println(list)
    println("------------------------------------")
    // 指定list按照compartor类中重写的方法排序
    util.Collections.sort(list,new compartor())
    println("-----> 排序后的顺序")
    println(list)
    println("------------------------------------")
  }

}

结果:

-----> 排序前的顺序
[{name=bbbbb, id=2}, {name=ccccc, id=3}, {name=aaaaa, id=1}]
------------------------------------
-----> 排序后的顺序
[{name=aaaaa, id=1}, {name=bbbbb, id=2}, {name=ccccc, id=3}]
------------------------------------
上一篇 下一篇

猜你喜欢

热点阅读