树形图和字节[]

时间:2013-03-19 07:34:17

标签: java collections

我的班级成员为byte[]我需要将TreeMap中的对象与key作为此类的对象。以下是我写的,但putget并未按预期运作。

import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.Arrays;    

public class XTObject Comparable<XTObject>{
    public byte[] data; 
    public XTObject(){

    }
    public XTObject(final byte[] in) {
        this.data = in;
    }   


    @Override
  public boolean equals(final Object obj) {
        if (this == obj)
      return true;
   if (obj == null)
      return false;
   if (getClass() != obj.getClass())
      return false;
   XTObject other = (XTObject) obj;
   if (!Arrays.equals(data, other.data))
      return false;
   return true;
    }
    @Override
  public int hashCode() {
        return Arrays.hashCode(data);       
    }
    @Override
    public int compareTo(XTObject o) {
        ByteBuffer left = ByteBuffer.wrap(this.data);
        ByteBuffer right = ByteBuffer.wrap(o.data);
        return left.compareTo(right);

    }

}

我认为Put工作正常,但get正在给出空指针异常。我是java新手。

1 个答案:

答案 0 :(得分:2)

您应确保data成员在构造期间始终初始化或您处理潜在的空值 如果数据成员未初始化,您将在[{1}},NullPointerExecptionequals方法中接触hashCode
TreeMapSortedMap,将使用compareTo方法对地图元素进行排序。