对Map <string,string =“”>的整数值进行排序

时间:2016-04-02 10:32:40

标签: java list sorting dictionary

我有一个List<Map <String, String>>,其中包含IP地址,rx数据包,rx字节等数据。 例如

{key:address value:10.0.0.1, key:packets value:500, key:bytes value:20240}
{key:address value:10.0.0.5, key:packets value:20,  key:bytes value:260}
{key:address value:10.0.0.100, key:packets value:1000,  key:bytes value:503210}

如何根据字节对此列表进行排序? 我想要一个像这样的输出:

{10.0.0.100, 1000,  503210}
{10.0.0.1, 500, 20240}
{10.0.0.5, 20,  260}

编辑:我从API(mikrotik API)获取数据,返回List<Map <String, String>>

List<java.util.Map<String, String>> results = con.execute("mikrotik command");

2 个答案:

答案 0 :(得分:0)

根据您可以执行的地图中的键值进行排序

List<Map<String, String>> listOfData =

listOfData.sort(Comparator.comparing(m -> m.get("bytes"));

一般情况下,你应该在Java中使用自定义类,而不是像Map这样的通用集合,只要你有很多具有相同字符串键的集合

答案 1 :(得分:-1)

而不是使用map使用setter和getters为数据创建Custom类。实现比较器接口

class MyObject implements Comparator<MyObject>{
    String ip;
    int rxPackets;
    int rxbytes;
//getters and setters for each element

@Override
    public int compare(MyObject o1, MyObject o2) {
        return o1.getrxbytes.compareTo(o2.getrxbytes());
    }

然后使用Collections.sort(pass List<MyObject> here);