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}]
------------------------------------
网友评论