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;
    }
  }
}

90.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"));
  
  }
}

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值