精华内容
下载资源
问答
  • 使用TreeMap 自动排序

    2021-08-11 10:23:18
    TreeMap<String, Object> signMap = new TreeMap<>(); // 入参 signMap.put("tccount", "admin"); signMap.put("account", "admin"); signMap.put("sccount", "admin"); signMap.put("eccount", ...
    TreeMap<String, Object> signMap = new TreeMap<>();
    // 入参
    	signMap.put("tccount", "admin");
    	signMap.put("account", "admin");
        signMap.put("sccount", "admin");
        signMap.put("eccount", "admin");
    
    // 输出: {account=admin, eccount=admin, sccount=admin, tccount="admin"}
    
    

    进入TreeMap类

    public TreeMap() {
            comparator = null;
        }
    

    查看 “comparator” 字段的说明

     	/**
         * The comparator used to maintain order in this tree map, or
         * null if it uses the natural ordering of its keys.
         *
         * @serial
         */
        private final Comparator<? super K> comparator;
    

    意思: 不填值为null , 使用默认排序(默认排序为升序 :a, b,c …)

    展开全文
  • TreeMap中的Key可以自动排序 详解

    千次阅读 2018-05-14 22:34:24
    /* Set添加元素用的是add,Map添加元素用的是put 如果想自动排序:1.实现Comparable接口 2.单独便捷一个比较器*/import java.util.*;public class fuck15{ public static void main(String[] args){ //Map.Key...
    /*
    
    Set添加元素用的是add,Map添加元素用的是put

    如果想自动排序:1.实现Comparable接口 2.单独便捷一个比较器
    */


    import java.util.*;


    public class fuck15{

    public static void main(String[] args){

    //Map.Key存储product,value存储斤数
    SortedMap products=new TreeMap();

    //匿名内部类,实现一个比较器
    SortedMap products=new TreeMap(new Comparator());{
    public int compare(Object o1,Object o2){
    double price1=this.price;
    double price2=((product)o).price;

    if(price1>price2){
    return -1;
    }else if(price1<price2){
    return 1;
    }else{
    return 0;
    }
    }
    }

    product p1=new product("西瓜",3.0);
    product p2=new product("圣女果",2.0);
    product p3=new product("桃子",6.0);
    product p4=new product("香蕉",2.5);

    products.put(p1,2.3);//这里还需要添加斤数
    products.put(p2,3.4);
    products.put(p3,2.3);
    products.put(p4,2.4);

    //遍历
    //遍历Set集合要先获取key才能遍历,调用keySet方法
    Set set=products.keySet();
    Iterator it=set.iterator();
    while(it.hasNext()){
    Object k=it.next();
    Object v=products.get(k);
    System.out.println(k+""+v);
    }
    }




    class product implements Comparable{

    String name;
    double price;

    product(String name,double price){
    this.name=name;
    this.price=price;
    }

    public String toString(){
    return name+""+price;
    }

    //实现compareTo方法
    //按照商品价格排序
    public int compareTo(Object o){
    double price1=this.price;
    double price2=((product)o).price;

    if(price1>price2){
    return -1;
    }else if(price1<price2){
    return 1;
    }else{
    return 0;
    }


    }

    }
    展开全文
  • TreeMap:基于红黑树(Red-Black tree)的 NavigableMap 实现,该映射根据其键的自然顺序(比如integer的大小,String的字典排序)进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法...

    TreeMap:基于红黑树(Red-Black tree)的 NavigableMap 实现,该映射根据其键的自然顺序(比如integer的大小,String的字典排序)进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。**
    HashMap的值是没有顺序的,它是按照key的HashCode来实现的,

    默认是升序的,也可以利用比较器来实现降序

    public class TreeMapTest {
        public static void main(String[] args) {
            Map<String, String> map = new TreeMap<String, String>(
                    new Comparator<String>() {
                        public int compare(String obj1, String obj2) {
    						// 降序排序
                            return obj2.compareTo(obj1);
                        }
                    });
            map.put("b", "ccccc");
            map.put("d", "aaaaa");
            map.put("c", "bbbbb");
            map.put("a", "ddddd");
    
            Set<String> keySet = map.keySet();
            Iterator<String> iter = keySet.iterator();
            while (iter.hasNext()) {
                String key = iter.next();
                System.out.println(key + ":" + map.get(key));
            }
        }
    }
    
    </pre>
    输出为:
    d:aaaaa
    c:bbbbb
    b:ccccc
    a:ddddd
    

    在这里插入图片描述

    按照value排序

    public class TreeMapTest {
        public static void main(String[] args) {
            Map<String, String> map = new TreeMap<String, String>();
            map.put("a", "ddddd");
            map.put("c", "bbbbb");
            map.put("d", "aaaaa");
            map.put("b", "ccccc");
    
            //这里将map.entrySet()转换成list
            List<Map.Entry<String,String>> list = new ArrayList<Map.Entry<String,String>>(map.entrySet());
            //然后通过比较器来实现排序
            Collections.sort(list,new Comparator<Map.Entry<String,String>>() {
                //升序排序
                @Override
                int compare(Map.Entry<String, String> stringStringEntry, Map.Entry<String, String> t1) {
                    return stringStringEntry.getValue().compareTo(t1.getValue());
                }
            });
    
            for(Map.Entry<String,String> mapping:list){
                System.out.println(mapping.getKey()+":"+mapping.getValue());
            }
        }
    }
    
    
    输出为:
    
    d:aaaaa
    c:bbbbb
    b:ccccc
    a:ddddd
    
    展开全文
  • Java: TreeMap排序效果

    千次阅读 2019-03-17 11:44:32
    TreeMap默认按照key的大小升序排列 public class Test { // 使用TreeMap记录所有人的得分,获得不同得分的人数,以分数大小排序 public static void main(String[] args) { // TODO Auto-generated method ...

    TreeMap默认按照key的大小升序排列

    public class Test {
        // 使用TreeMap记录所有人的得分,获得不同得分的人数,以分数大小排序
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
            Scanner in = new Scanner(System.in);
            int per = in.nextInt();  // 总人数
            TreeMap<Integer, Integer> map = new TreeMap<>();        
            for (int j = 0; j < per; j++) {
            	int score = in.nextInt();
            	if (!map.containsKey(score)) {
            		map.put(score, 1);
            	} else {
            		map.put(score, map.get(score) + 1);
            	}
            }
            List<Entry<Integer, Integer>> list = new ArrayList<Entry<Integer, Integer>>(map.entrySet()); 
            
            for (Entry<Integer, Integer> e: list) {
            	System.out.println(e.getKey() + ": " + e.getValue());
            }
        }
      }
    
    }
    

    结果为
    在这里插入图片描述

    TreeMap按Value排序

    public class Test {
        
        // 使用TreeMap记录所有人的得分,并按照不同得分的人数进行排序
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
            Scanner in = new Scanner(System.in);
            int per = in.nextInt();  // 总人数
            TreeMap<Integer, Integer> map = new TreeMap<>();        
            for (int j = 0; j < per; j++) {
            	int score = in.nextInt();
            	if (!map.containsKey(score)) {
            		map.put(score, 1);
            	} else {
            		map.put(score, map.get(score) + 1);
            	}
            }
            //	根据value来排序,将键值对保存到list,用Colletions.sort方法排序
            List<Entry<Integer, Integer>> list = new ArrayList<Entry<Integer, Integer>>(map.entrySet()); 
            Collections.sort(list, new Comparator<Map.Entry<Integer,Integer>>() {
            	public int compare(Entry<Integer,Integer> o1, Entry<Integer, Integer> o2) {
            		return o1.getValue() > o2.getValue() ? 1:-1;  //升序排列
            	}
            });
            for (Entry<Integer, Integer> e: list) {
            	System.out.println(e.getKey() + ": " + e.getValue());
            }
        }
      }
    
    }
    
    

    结果按value大小升序排列
    在这里插入图片描述

    展开全文
  • TreeMap 根据key 倒序排序

    万次阅读 2017-11-15 15:10:42
    java.util.TreeMap中的descendingMap()可实现
  • TreeMap 排序 字典码排序

    千次阅读 2018-04-02 10:52:22
    一、TreeMapTreeMap 默认排序规则:按照key的字典顺序来排序(升序)当然,也可以自定义排序规则:要实现Comparator接口。用法简单,先看下下面的demopublic class SortDemo { public static void main(String[] ...
  • 1.List排序 List集合中的元素的特点,有序可重复。如果想以特定方式排序,需要通过以下几种方式:使用list的sort方法、使用Collections中的sort方法。 1.使用list的sort方法 package myblog.javabasis....
  • java中如何使用TreeMap进行键值对排序

    千次阅读 2015-02-11 15:51:34
    TreeMap是可以保存键值对的一种方式,它的特殊之处是它可以自动以键进行升序排序。 下面举例说明它的用法。 首先定义一个实体类Person,有name和age属性: [java] view plaincopyprint? ...
  • TreeMap是如何实现去重和排序

    千次阅读 2020-07-18 14:38:33
    TreeMap并不是根据插入的顺序来排序,而是根据key元素的 compareTo 方法来排序。 测试代码: Map<Integer, Object> map = new TreeMap<>(); map.put(5, new Object()); map.put(10, new Object()); map....
  •  * 包括TreeMap排序,HashMap的排序,四种遍历方式  * @author Administrator  *  */ public class MapTest {    public static void main(String[] args) {    //创建map对象,并赋值    Map...
  • // 根据key 值排序后的输出 2、 TreeMap, String> treeMap = new TreeMap, String>(new Comparator(){ public int compare(String a,String b){ return b.compareTo(a); } }); for (String string : ...
  • Map, String> map1 = new TreeMap, String>(); for (Verdice cc : verdice) { map1.put(cc.getDaytime(), "1"); // list.add(map1); }   转载于:...
  • TreeMap为例实现排序: 代码如下,以两种方式进行演示 演示一,实现Comparable接口 public class Student implements Comparable{ private String name; private int age; public String getName() { ...
  • TreeSet treeReverseStr= new TreeSet(); treeReverseStr = (TreeSet) treeStr.descendingSet();... dataMap = new TreeMap<String,List>(); dataMap = ((TreeMap) dataMap).descendingMap();
  • LinkedHashMap与TreeMap排序问题

    千次阅读 2015-12-25 11:27:42
    java集合框架非常好的封装了对数据基本处理的底层实现细节,可以直接调用API完成对数据的基本的操作,它们之间的关系就不累述了,这里主要想谈下LinkedHashMap与TreeMap排序问题。 LinkedHashMap的底层是哈希实现...
  • 原本从了解的资料知道HashMap是不会自动排序TreeMap是可以自动排序的,晚上测试 了一下发现 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20201118215701558.png?x-oss-process=image/watermark,type_ZmFuZ...
  • TreeMap

    2018-10-03 17:15:19
    3 TreeMap自动排序 -----------------------------------------------------------------以下理解错了---------------------------------------------------------------- 二实例: 1如果键是基本类型,...
  • 巧妙利用TreeMap实现对参数ASCII升序排序 博客分类:   排序   通常在业务需求中调用别人接口的时候,会有对英文字母升序排序(ASCII升序),然后加密啥的,最后生成一个签名再传给对方这一类的要求,这里...
  • HashMap,键值是Integer和Character时会自动排序(不建议使用) Hashtable与HashMap类似 Hashtable HashMap 线程同步 需提供一个外同步 不能存空值,空键 可以存一个空键,空值随便存   TreeMa
  • List集合排序 Set子接口与list子接口的不同,那就是list子接口是可以保存重复的数据的,而Set子接口是不能保存重复的数据的。   首先我们知道List集合排序方式直接使用Collections工具类中的sort方法中默认是...
  • 本文使用了两种方法进行spark 的top k词频查询,第S一种方法...第二种方法在其他博客中基本没有看到,使用的是堆的方式,具体为采用immutable.TreeMap这个自带排序功能的类,但是需要我们稍微修改以下,让它能够根据va
  • 利用TreeMap进行排序

    千次阅读 2008-03-18 14:32:00
    java.util.TreeMap 放入其中的value,自动按key进行排序, 默认的排序规则按ascii码排序,如果是key是英文和数字不会有问题,如果中文则会出现问题,需要自己写排序规则。比较器需要实现java.text.Collator类,例如...
  • import java.util.Map;...import java.util.TreeMap; /** * 红黑二叉树实现了TreeMap * @author asus * */ public class TreeMapTest { public static void main(String[] args) { Map<Int...
  • TreeSet与TreeMap排序

    2014-11-16 23:01:00
    * TreeSet存储对象的时候, 可以排序, 但是需要指定排序的算法 * * Integer能排序(有默认顺序), String能排序(有默认顺序), 自定义的类存储的时候出现异常(没有顺序) ** 如果想把自定义类的对象存入TreeSet进行...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,830
精华内容 9,532
关键字:

treemap自动排序