2016-04-02 6 views
0

List<Map <String, String>>には、IPアドレス、rxパケット、rxバイトなどのデータが含まれています。 例sort <String、String>ベースの整数値のリスト

{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:} 

このリストをバイト単位でソートするにはどうすればよいですか? 私はこのような一つの出力たい:

{10.0.0.100, 1000,} 
{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"); 
+0

あなたが何をしようとしましたを使用するカスタムクラスを作成しますか?地図の –

+0

私は3つの要素を見ます...キーは何ですか、ヴァールは何ですか? –

+0

地図を定義してデータを入力するコードを教えてください。 – RAnders00

答えて

0

を返します。一般的には

List<Map<String, String>> listOfData = 

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

を行うことができますが、同じ文字列のキーを持つそれらの多くを持っているところはどこでも、あなたはむしろ、地図のようなジェネリックコレクションより、Javaでカスタムクラスを使用する必要があります

-1

の代わりに、マップを使用してセッターとgetters.Implementコンパレータインタフェース

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);