WEB开发网
开发学院WEB开发Jsp 哈希崩溃及避免方法 阅读

哈希崩溃及避免方法

 2008-01-05 18:46:20 来源:WEB开发网   
核心提示:先看下面的一个例子,假如你能毫不犹豫的全部答对,说明你对HashMap基本理解.import java.util.Map;import java.util.HashMap;import java.util.Set;import java.util.HashSet;class HashFail{ public stat

先看下面的一个例子,假如你能毫不犹豫的全部答对,说明你对HashMap基本理解.
import java.util.Map;
import java.util.HashMap;
import java.util.Set;
import java.util.HashSet;
class  HashFail
{
    public static void main(String[] args)
    {
        Map map=new HashMap();
       Key k=new Key(10);
       map.put(k,"value");  //插入一个key:10
       System.out.PRintln(map.get(k)!=null); //这里显然是true
       k.i++;//要害地方,key改变了
    
      System.out.println(map.get(k)!=null);      //?
      System.out.println(map.get(new Key(10))!=null); //?
      System.out.println(map.get(new Key(11))!=null); //?

    for(int i=0;i<20;i++) map.put(new Object(),new Object());
      //这里加一些无用信息,导致rehash过程

    System.out.println(map.get(k)!=null);      //?
      System.out.println(map.get(new Key(10))!=null); //?
      System.out.println(map.get(new Key(11))!=null); //?

     k.i--;//这里把Key改回去了

     System.out.println(map.get(k)!=null);      //?
       System.out.println(map.get(new Key(10))!=null); //?
       System.out.println(map.get(new Key(11))!=null); //?

  }
    static class Key
   {
      int i;
      Key(int i){
        this.i=i;
      }
      public boolean equals(Object obj){

Tags:哈希 崩溃 避免

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接