① 排序的集合有哪些 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值不存在的判断)