Java连载91-Map常用方法、Hashtable、SortedMap

Java连载91-Map常用方法、Hashtable、SortedMap

一、Map常用方法简介

 

package com.bjpowernode.java_learning;

​

import java.util.HashMap;

import java.util.*;

​

public class D91_1_MapCommonMethod {

  public static void main(String[] args) {

    Map persons = new HashMap();//HashMap的默认初始化容量为16,默认加载因子时0.75

    persons.put("10000","JACK");

    persons.put("10001","ZHANGXINLEI");

    persons.put("10002","YAOKUN");

    persons.put("10003","ZHAOZEKUN");

    persons.put("10004","LIDUO");

    persons.put("10005","DIAOBI");

    //1.判断集合中是否包含这样的value

    //注意:如果Map中的key重复了,value采用的是“覆盖”

    System.out.println(persons.containsValue("LUCK"));

    //2.通过key来获取value

    String k = "10001";

    Object v = persons.get(k);

    System.out.println(v);

    //3.通过key删除键值对

    persons.remove("10002");

    System.out.println(persons.get("10002"));

    //4.获取所有的value

    Collection values = persons.values();

    Iterator it = values.iterator();

    while(it.hasNext()) {

      System.out.println(it.next());

    }

    //5.获取所有的key

    //以下程序演示遍历Map集合

    Set keys = persons.keySet();

    Iterator it2 = keys.iterator();

    while(it2.hasNext()) {

      Object k2 = it2.next();

      Object v2 = persons.get(k2);

      System.out.println(k2+"-->"+v2);

    }

    System.out.println("--------------------------------------");

    //6.entrySet将Map集合key和value都打印出来,中间使用等号进行连接

    Set s2 = persons.entrySet();

    Iterator i3 = s2.iterator();

    while(i3.hasNext()) {

      System.out.println(i3.next());

    }

  }

}

二、Hashtable

1.HashMap默认初始化容量是16,默认加载因子为0.75

2.Hashtable默认初始化容量是11,默认加载因子为0.75

 

package com.bjpowernode.java_learning;

import java.util.*;

​

public class D91_2_Hashtable_Propet {

  public static void main(String[] args) {

    //1.创建属性类对象

    Properties p = new Properties();

    //2.存

    //注意key是不能重复,如果重复就会造成value覆盖

    p.setProperty("driver","oracle.jdbc.driver.OracleDriver");

    p.setProperty("username","scott");

    p.setProperty("password","tiger");

    p.setProperty("url","jdbc:oracle:thin:@192.167.1.100:1521:bjpowernode");

    //3.取出来,通过key获取value

    String v1 = p.getProperty("driver");

    String v2 = p.getProperty("username");

    String v3 = p.getProperty("password");

   

    System.out.println(v1);

    System.out.println(v2);

    System.out.println(v3);

   

  }

​

}

​

三、SortedMap

1.SortedMap中的key特点:无序不可以重复,但是存进去的元素可以按照大小进行排列。

2.如果想要自动排序,key部分的元素需要​:(1)实现Comparable接口或者(2)单独写一个比较器

 

package com.bjpowernode.java_learning;

import java.util.*;

​

public class D91_3_TreeMap {

  public static void main(String[] args) {

    //Map,key存储Product91,value存储个数

    SortedMap products = new TreeMap();

    /**

     * 匿名内部类(单独写一个比较器的方法)

     * SortedMap products = new TreeMap(new Comparator(){

     *     public int compareTo(Object o) {

     *      double price1 = this.price;

     *      double price2 = ((Product91)o).price;

     *      if(price1<price2) {

     *        return -1;

     *      }else if(price1>price2) {

     *        return 1;

     *     

     *      }else {

     *        return 0;

     *      }

     *    }

       *})

     */

    //准备对象

    Product91 p1 = new Product91("西瓜",1.0);

    Product91 p2 = new Product91("黄瓜",2.0);

    Product91 p3 = new Product91("南瓜",3.0);

    Product91 p4 = new Product91("冬瓜",4.0);

    //添加

    products.put(p1,8);//后面这个value无所谓,我们暂且认为是斤数

    products.put(p2,4);

    products.put(p3,4);

    products.put(p4,4);

    //遍历

    Set keys = products.keySet();

    Iterator it = keys.iterator();

    while(it.hasNext()) {

      Object k = it.next();

      Object v =products.get(k);

      System.out.println(k+"-->"+v);

    }

   

   

  }

}

class Product91 implements Comparable{

  String name;

  double price;

  Product91(String name,double price){

    this.name = name;

    this.price = price;

  }

  public String toString() {

    return "Poduct91(name=" + name + ",price=" + price +")";

  }

  public int compareTo(Object o) {

    double price1 = this.price;

    double price2 = ((Product91

        )o).price;

    if(price1<price2) {

      return -1;

    }else if(price1>price2) {

      return 1;

   

    }else {

      return 0;

    }

  }

}

四、源码:

D91_1_MapCommonMethod.java

D91_2_Hashtable_Propet.java

D91_3_TreeMap.java

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

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

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

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

3.云海天:https://www.cnblogs.com/ruigege0000/

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