java 孙鑫 第六课(第四部分)HashMap和TreeMap类介绍

来源:互联网 发布:美国囧哥淘宝店 编辑:程序博客网 时间:2024/05/16 06:40
 

HashMap类:第六课F 11700

 

 

·HashMapkey进行散列 允许空值和空键(HashSet底层就是HashMap来实现的)

·keySet()  values()  entrySet()

HashMap对象中添加元素使用put(“键值”,“元素值”)方法,get(“键值”)方法获取的是对应键值的元素值。注意这两个方法参数需要加双引号的哦。

      如果你想单一获得键值,可使用keySet()方法返回的Set对象来取得,如果你想单一获得元素值,可使用values()返回的Collection对象取得。如果你既想获取键值又想获得相应键值的元素,就需要使用entrySet()方法了,该方法也返回Set类型,然后打印该返回对象即可,也可以对返回的对象再使用接口 Map.Entry中的getKey()getValue()方法也能获得键和值。下面举例分别实现:

import java.util.*;

public class HashMapTest

{

      //首先定义一个通用的迭代器打印方法以供下面方便打印输出

      public static void printElements( Collection c)

      {

           Iterator it = c.iterator();

           while(it.hasNext())

           {

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

           }

      }

      public static void main(String[] args)

      {

           HashMap ha = new HashMap();

          

           //向其中添加键和值

           ha.put("one","zhangshan");

           ha.put("two","lisi");

           ha.put("three","wangwu");

           ha.put("four","xieliu");

          

           //获取给出的键所对应的值

           System.out.println(ha.get("two"));

           System.out.println(ha.get("three"));

          

           //单一获取键值

           Set se =ha.keySet();

           printElements(se);

          

           //获取单一元素值

           Collection co = ha.values();

           printElements(co);

          

           //获取键和值

           Set entry = ha.entrySet();

           System.out.println("获取键和值");

           printElements(entry);

          

           //如果我们拥有了entrySet()方法返回的拥有键和值的Set对象,但是我们又只想获取其中的键或值怎么办呢??

           Iterator it = entry.iterator();

           while(it.hasNext())

           {

                 Map.Entry en = (Map.Entry)it.next();

                 System.out.println(en.getKey()+"~~"+en.getValue());

           }

      }

}

TreeMap 第六课G 5920

TreeMap是按照key进行排序的。用法跟HashMap基本一致。

HashMapTreeMap区别:

HashMap性能优于TreeMap。通常使用HashMap,在我们需要对其中元素排序的时候才使用TreeMap

Java1.0 1.1中的集合类:

Vector   HashTable 分别被ArrayListHashMap代替了。因为前两个方法是同步的,一般不常用,但有时在多线程中可能用到他们,而不使用后2者中的同步方法,因为前者的效率高。

第六课 h   中有property类关于读取配置文件的使用介绍

 

 

 

原创粉丝点击