package com.alimama.mdrillImport; import java.io.Serializable; import java.util.Arrays; public class BoltStatVal implements Serializable{ private static final long serialVersionUID = 1L; public Number[] list; public long groupts=0; @Override public String toString() { return "BoltStatVal [list=" + Arrays.toString(list) + ", groupts=" + groupts + "]"; } public long getGroupts() { return groupts; } public BoltStatVal(Number[] list,long groupts) { this.list = list; this.groupts=groupts; } private Number add(Number a,Number b) { if(a instanceof Integer) { return a.intValue()+b.intValue(); }else if(a instanceof Long) { return a.longValue()+b.longValue(); } else if(a instanceof Double) { return a.doubleValue()+b.doubleValue(); } else if(a instanceof Float) { return a.floatValue()+b.floatValue(); }else{ return a.floatValue()+b.floatValue(); } } public void merger(BoltStatVal v) { for(int i=0;i<this.list.length&&i<v.list.length;i++) { this.list[i]=this.add(v.list[i],this.list[i]); } this.groupts=Math.max(this.groupts, v.groupts); } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + (int) (groupts ^ (groupts >>> 32)); result = prime * result + Arrays.hashCode(list); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; BoltStatVal other = (BoltStatVal) obj; if (groupts != other.groupts) return false; if (!Arrays.equals(list, other.list)) return false; return true; } }