① 排序的集合有哪些 java
Collection
List
Set
HashSet
TreeSet 是(用二叉樹排序)
Map使用key-value來映射和存儲數據,Key必須惟一,
其中List和Set繼承自Collection介面。
Set不允許元素重復。HashSet和TreeSet是兩個主要的實現類。
List有序且允許元素重復。ArrayList、LinkedList和Vector是三個主要的實現類。
Map也屬於集合系統,但和Collection介面不同。Map是key對value的映射集合,其中key列就是一個集合。key不能重復,但是value可以重復。HashMap、TreeMap和Hashtable是三個主要的實現類。
SortedSet和SortedMap介面對元素按指定規則排序,SortedMap是對key列進行排序。
② java 如何實現數組排序並輸出每個數字原來的索引
java變成對數組進行排序可以使用ArraySort方法,保存源數組下標值可以存入map中,如下代碼:
運行結果如下:
③ java中list裡面存放map,根據map中的某兩個個欄位進行排序
packagecom.compare.test;
importjava.util.ArrayList;
importjava.util.HashMap;
importjava.util.List;
importjava.util.Map;
publicclassMain{
publicstaticvoidmain(String[]args){
MainmainTest=newMain();
mainTest.sortMap();
}
publicvoidsortMap(){
List<Map<Integer,Double>>maps=newArrayList<Map<Integer,Double>>();
for(inti=0;i<10;i++){
HashMap<Integer,Double>map=newHashMap<Integer,Double>();
for(intj=0;j<2;j++){
map.put(j,Math.random());
}
maps.add(map);
}
for(Map<Integer,Double>map:maps){
System.out.println(getValue(map));
}
System.out.println("************************");
Map<Integer,Double>currentMap;
for(inti=0;i<maps.size()-1;i++){
for(intj=0;j<maps.size()-i-1;j++){
if(getValue(maps.get(j))>getValue(maps.get(j+1))){
currentMap=maps.get(j+1);
maps.set(j+1,maps.get(j));
maps.set(j,currentMap);
}
}
}
for(Map<Integer,Double>map:maps){
System.out.println(getValue(map));
}}
publicDoublegetValue(Map<Integer,Double>currentMap){
returncurrentMap.get(0)+currentMap.get(1);
}
}
我採用最簡單的排序大數沉底。而且getValue
方法你可以自己實現,決定使用哪幾個進行排序。(我們有進行key值不存在的判斷)