我很難理解排序映射的正確語法,哪些值不只是一種類型,而是可以再次嵌套。 我會盡力拿出這裏安裝例:如何按鍵和值對映射進行排序,而Val是映射/列表本身
讓我們做一個隨機類爲第一:
class NestedFoo{
int valA;
int valB;
String textA;
public NestedFoo(int a, int b, String t){
this.valA = a;
this.valB = b;
this.textA = t;
}
}
好吧,這是我們班。 這裏談到的列表:
HashMap<Integer, ArrayList<NestedFoo>> sortmePlz = new HashMap<>();
讓我們創建3項下手,應該表現出整理作品了。
ArrayList<NestedFoo> l1 = new ArrayList<>();
n1 = new NestedFoo(3,2,"a");
n2 = new NestedFoo(2,2,"a");
n3 = new NestedFoo(1,4,"c");
l1.add(n1);
l1.add(n2);
l1.add(n3);
ArrayList<NestedFoo> l2 = new ArrayList<>();
n1 = new NestedFoo(3,2,"a");
n2 = new NestedFoo(2,2,"a");
n3 = new NestedFoo(2,2,"b");
n4 = new NestedFoo(1,4,"c");
l2.add(n1);
l2.add(n2);
l2.add(n3);
l2.add(n4);
ArrayList<NestedFoo> l3 = new ArrayList<>();
n1 = new NestedFoo(3,2,"a");
n2 = new NestedFoo(2,3,"b");
n3 = new NestedFoo(2,2,"b");
n4 = new NestedFoo(5,4,"c");
l3.add(n1);
l3.add(n2);
l3.add(n3);
l3.add(n4);
甜,現在把它們放在我們的地圖。
sortmePlz.put(5,l1);
sortmePlz.put(2,l2);
sortmePlz.put(1,l3);
我現在想什麼,是由它的鍵排序,首先整個地圖,所以順序應該是L3 L2 L1。 然後,我想每個鍵內的列表按以下順序排序: intA,intB,text(全部升序)
我不知道該怎麼做。特別是從Java 8以及所有這些lambda表達式開始,我試圖閱讀這個主題,但感覺不知所措的代碼。
在此先感謝! 我希望代碼有沒有syntatical錯誤,我做了它在旅途中
我不明白的問題,你想通過intA列表l3,intB列表l2和文本列表l1? –
你的代碼有錯誤,主要是打字錯誤等。確保它先編譯並重新發布更新後的代碼。例如'public NestedFoo {int a,int b,String t)'你聲明的構造函數打開'{'而不是'(' – pleft
@BrankVictoria,不,我想通過它的鍵來排序HashMap,然後爲每個值是一個arraylist)通過發號施令 – InDaPond