public boolean equals(Data that) { if (opcode != that.opcode) return false; // distinguish BYTE,WORD,FLOaT if (data.length != that.data.length) return false; for (int i = 0; i < data.length; i++) if (data[i] != that.data[i]) return false; if (next == null && that.next == null) return true; if (next != null && that.next != null) return next.equals(that.next); return false; }