Java连载90-Sorted、Map讲解

2020-02-29 16:01:17来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

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

 

 


原文链接:https://www.cnblogs.com/ruigege0000/p/12381269.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:写入时复制(CopyOnWrite)

下一篇:线程sleep,wait,notify,join,yield方法解析