DESKTOP-94E2ELT_20200909-刘雪丽

一、问题

今天在练习代码的时候没有注意到自己的错误,导致最后一个对象不输出,是因为我在Tostring语句里边循环输出时,将循环里的I的范围给小了,这是粗心的结果,在测试时碰巧发现null值在比较的时候出现的问题:

   public V put(K key,V value) {
           for(int i=0;i<number;i++) {
               MapEntry < K,V > m = array [i];
               System.out.println( m.getKey() );
               K k ;
               if( ( k = m.getKey() ) == key || ( k != null && k.equals(key) ) ) {
                   V old=m.setValue(value);
                   return old;
               }           
           }
           MapEntry<K,V> entry=new  MapEntry<>(key,value);
           array [number] = entry ;
           number++;
           return null;
       }
       

       public V get(K key) {
           for(int i=0;i<number;i++) {
               MapEntry<K,V> m=array[i];
               K k ;
               if( ( k = m.getKey() ) == key || ( k != null && k.equals(key) ) ) {
                   return m.getValue();
               }
           }
           return null;
       }

       public  V remove(K key) {
           for(int i=0;i<number;i++) {
               MapEntry<K,V> m=array[i];
               K k ;
               if( ( k = m.getKey() ) == key || ( k != null && k.equals(key) ) ) {
                  System.arraycopy(array, i+1, array, i, number-i);
                  number--;
                  return m.getValue();
               }           
           }return null;
       }
       
      
       
       public String toString() {
           StringBuffer buffer=new StringBuffer();
           buffer.append("【");
           for(int i=0;i<number;i++) {
               buffer.append(array[i].getKey());
               buffer.append("=");
               buffer.append(array[i].getValue());
               if (i<number-1) {
               buffer.append(",");
           }
           }
           buffer.append("】");
           
           return buffer.toString();
       }

这是部分代码,问题已解决。

二、吐槽

感冒一直不好,虽然各种吃药,但好像作用都不是很大,上下课都多多少少的有些影响。希望感冒快些好。

标签


© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1