zoukankan      html  css  js  c++  java
  • Java连载90-Sorted、Map讲解

    一、

    1.让SortedSet集合做到排序还有另一种方式:java.util.Comparator;

    2.单独编写一个比较器

    package com.bjpowernode.java_learning;
    
    import java.util.*;
    
    ​
    
    public class D90_1_SortedSet {
    
      public static void main(String[] args) {
    
         //创建TreeSet集合的时候提供一个比较器
    
        SortedSet products = new TreeSet(new ProductComparator());
    
        Product90 p1 = new Product90(3.4);
    
        Product90 p2 = new Product90(4.0);
    
        Product90 p3 = new Product90(3.0);
    
        Product90 p4 = new Product90(2.0);
    
        Product90 p5 = new Product90(5.0);
    
        //添加元素
    
        products.add(p1);
    
        products.add(p2);
    
        products.add(p3);
    
        products.add(p4);
    
        products.add(p5);
    
        //遍历
    
        Iterator i = products.iterator();
    
        while(i.hasNext()) {
    
          System.out.println(i.next());
    
        }
    
       
    
       
    
      }
    
    }
    
    class Product90 {
    
      double price;
    
      Product90(double price){
    
        this.price = price;
    
       
    
      }
    
      public String toString() {
    
        return price+"";
    
       
    
      }
    
    }
    
    class ProductComparator implements Comparator{
    
      public int compare(Object o1,Object o2) {
    
        double price1 = ((Product90)o1).price;
    
        double price2 = ((Product90)o2).price;
    
        if(price1==price2) {
    
          return 0;
    
        }else if (price1<price2) {
    
          return -1;
    
        }else {
    
          return 1;
    
        }
    
      }
    
    }

     

    ​总结:使用这种单独实现比较器的方法,因为这样符合​高内聚低耦合的原则,代码复用性更强。

    二、Comparable和Comparator的区别

    见两次连载的代码,推荐使用Comparator

    三、Map

    package com.bjpowernode.java_learning;
    
    import java.util.*;
    
    ​
    
    public class D90_2_MapUsualMethod {
    
      public static void main(String[] args) {
    
        /**
    
         * 关于Map集合中的常用方法
    
         */
    
        //void clear();清空Map
    
        //boolean containsKey(Object key);判断Map中是否包含这样的key
    
       
    
        //boolean containsValue(Object value);判断Map中是否包含这样的value
    
       
    
        //Set<Map.Entry<K,V>> entrySet();返回此映射中包含的映射关系的Set视图
    
       
    
        //Object get(Object key);通过key获取value;
    
       
    
        //Object put(Object key,Object value);向集合中添加键值对
    
       
    
        //boolean isEmpty(); 判断该集合是否为空
    
       
    
        //Object remove(Object key);通过key将键值对删除
    
       
    
        //int size();获取Map中键值对的个数
    
       
    
        //Set keySet();获取Map中所有的键值对
    
       
    
        //Collection values();获取Map集合中所有的value
    
       
    
        //1.创建Map集合
    
        Map persons = new HashMap();//HashMap的默认初始化容量为16,默认加载因子时0.75
    
        //2.存储键值对
    
        persons.put("10000","JACK");
    
        persons.put("10001","ZHANGXINLEI");
    
        persons.put("10002","YAOKUN");
    
        persons.put("10003","ZHAOZEKUN");
    
        persons.put("10004","LIDUO");
    
        persons.put("10005","DIAOBI");
    
        //3.判读键值对的个数
    
        //Map中的key是无序不可重复的,和HashSet相同
    
        System.out.println(persons.size());
    
       
    
        //4.判断集合中是否包含这样的key
    
        System.out.println(persons.containsKey("10000"));
    
       
    
        //5.判断集合中是否包含这样的value
    
        System.out.println(persons.containsValue("ZHANGXINLEI"));
    
     
    
      }
    
    }

    四、源码:

    D90_1_SortedSet.java

    D90_2_MapUsualMethod.java

    https://github.com/ruigege66/Java/blob/master/D90_1_SortedSet.java

    https://github.com/ruigege66/Java/blob/master/D90_2_MapUsualMethod.java

    2.CSDN:https://blog.csdn.net/weixin_44630050

    3.博客园:https://www.cnblogs.com/ruigege0000/

    4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

     

  • 相关阅读:
    斐波那契数列实现方式,以及递归和非递归时间对比
    月份与季节
    时针与分针夹角
    二叉树非递归遍历 以及二叉树节点删除思路
    向左向右 —折半查找(二分法)
    c语言之字符串及字符集简介
    c语言之排序
    C语言代码页 预处理 和宏 结构体 共用体 枚举 指针简绍
    C语言之函数调用约定,递归,数组简介
    C语言之条件判断
  • 原文地址:https://www.cnblogs.com/ruigege0000/p/12381269.html
Copyright © 2011-2022 走看看